工作簿_Workbook_基本操作应用示例

[示例 03-12-02]

Sub listWorkbookProperties() On Error Resume Next

'在名为\工作簿属性\的工作表中添加信息,若该工作表不存在,则新建一个工作表 Worksheets(\工作簿属性\If Err.Number <> 0 Then

Worksheets.Add after:=Worksheets(Worksheets.Count)

ActiveSheet.Name =\工作簿属性\ Else

ActiveSheet.Clear End If

On Error GoTo 0 ListProperties End Sub

Sub ListProperties() Dim i As Long Cells(1, 1)=\名称\ Cells(1, 2)=\类型\ Cells(1, 3)=\值\

Range(\With ActiveWorkbook

For i = 1 To .BuiltinDocumentProperties.Count With .BuiltinDocumentProperties(i)

Cells(i + 1, 1) = .Name Select Case .Type

Case msoPropertyTypeBoolean

Cells(i + 1, 2) = \

Case msoPropertyTypeDate

Cells(i + 1, 2) = \

Case msoPropertyTypeFloat

Cells(i + 1, 2) = \Case msoPropertyTypeNumber Cells(i + 1, 2) = \

Case msoPropertyTypeString Cells(i + 1, 2) = \

End Select

On Error Resume Next

Cells(i + 1, 3) = .Value On Error GoTo 0 End With Next i End With

Range(\

http://fanjy.blog.exce丨home.net

ExcelVBA>>ExcelVBA 编程入门范例>> 第三章 Workbook 对象(fanjy)

End Sub

示例说明:本示例代码在“工作簿属性”工作表中列出了当前工作簿中的所有内置属性。

示例03-13:测试工作簿中是否包含指定工作表(Sheets属性)

Sub testSheetExists()

MsgBox \测试工作簿中是否存在指定名称的工作表\Dim b As Boolean

b = 3卜661巳仏13(\指定的工作表名>\If b = True Then

MsgBox \该工作表存在于工作簿中.\ Else

MsgBox \工作簿中没有这个工作表.\ End If End Sub

Private Function SheetExists(sname) As Boolean Dim x As Object On Error Resume Next

Set x = ActiveWorkbook.Sheets(sname) If Err = 0 Then SheetExists = True Else

SheetExists = False End If End Function

示例03-14:对未打开的工作簿进行重命名(Name方法)

Sub rename()

Name \工作簿路径>\\<旧名称>.xls\工作簿路径>\\<新名称>.xls\End Sub

示例说明:代码中 <> 中的内容为需要重命名的工作簿所在路径及新旧名称。该方法只是对 未打开的文件进行重命名,如果该文件已经打开,使用该方法会提示错误。

示例03-15:设置数字精度(PrecisionAsDisp丨ayed属性)

Sub SetPrecision() Dim pValue

MsgBox \在当前单元格中输入1/3,并将结果算至小数点后两位\ActiveCe丨丨.Value = 1 / 3

ActiveCe丨丨.NumberFormatLoca丨=\pValue = ActiveCe丨丨.Value * 3

MsgBox \当前单元格中的数字乘以3等于:“& pValue

MsgBox \然后,将数值分类设置为[数值],即单元格中显示的精度\

http://fanjy.blog.excelhome.net

ExcelVBA>>ExcelVBA 编程入门范例>> 第三章 Workbook 对象(fanjy)

ActiveWorkbook.PrecisionAsDisplayed = True pValue = ActiveCe丨丨.Value * 3

MsgBox \此时,当前单元格中的数字乘以3等于:“& pValue & \而不是1\ActiveWorkbook.PrecisionAsDisplayed = False End Sub

示例说明:PrecisionAsDisplayed属性的值设置为True,则表明采用单元格中所显示的数 值进行计算。

示例03-16:删除自定义数字格式(DeleteNumberFormat方法)

Sub DeleteNumberFormat()

MsgBox \从当前工作簿中删除000-00-0000的数字格式\ActiveWorkbook.De丨eteNumberFormat (\End Sub

示例说明:DeleteNumberFormat方法将从指定的工作簿中删除自定义的数字格式。

示例03-17:控制工作簿中图形显示(Disp丨atyDrawingObjects属性)

Sub testDraw()

MsgBox \隐藏当前工作簿中的所有图形\

ActiveWorkbook.DisplayDrawingObjects = xlHide MsgBox \仅显示当前工作簿中所有图形的占位符\ActiveWorkbook.DisplayDrawingObjects = xlPlaceholders MsgBox \显示当前工作簿中的所有图形\

ActiveWorkbook.DisplayDrawingObjects = xlDisp丨ayShapes End Sub

示例说明:本属性作用的对象包括图表和形状。在应用本示例前,应保证工作簿中有图表或 形状,以察看效果。

示例03-18:指定名称(Names属性)

Sub testNames()

MsgBox \将当前工作簿中工作表Sheet1内单元格A1命名为myName.\

ActiveWorkbook.Names.Add Name:=\End Sub

示例说明:对于Workbook对象而言,Names属性返回的集合代表工作簿中的所有名称。

示例03-19:检查工作簿的自动恢复功能(Enab丨eAutoRecover属性)

Sub UseAutoRecover()

'检查是否工作簿自动恢复功能开启,如果没有则开启该功能 If ActiveWorkbook.EnableAutoRecover = False Then ActiveWorkbook.EnableAutoRecover = True MsgBox \刚开启自动恢复功能.\Else

MsgBox “自动恢复功能已开启.\

http://fanjy.blog.excelhome.net

End If End Sub

示例03-20:设置工作簿密码(Password属性)

Sub UsePassword() Dim wb As Workbook

Set wb = Application.ActiveWorkbook wb.Password = InputBox(\请输入密码:\) wb.Close End Sub

示例说明:Password属性返回或设置工作簿密码,在打开工作簿时必须输入密码。本示例 代码运行后,提示设置密码,然后关闭工作簿;再次打开工作簿时,要求输入密码。

示例03-21:返回工作簿用户状态信息(UserStatus属性)

Sub UsePassword() Dim Users As Variant Dim Row As Long

Users = ActiveWorkbook.UserStatus Row = 1

With Workbooks.Add.Sheets(1) .Cells(Row, 1)=\用户名\ .Cells(Row, 2)=\日期和时间\ .Cells(Row, 3)=\使用方式\ For Row = 1 To UBound(Users, 1) .Cells(Row + 1, 1) = Users(Row, 1) .Cells(Row + 1, 2) = Users(Row, 2) Select Case Users(Row, 3) Case 1

.Cells(Row + 1, 3).Value =\个人工作簿\ Case 2

.Cells(Row + 1, 3).Value =\共享工作簿\ End Select Next End With

Range(\End Sub

示例说明:示例代码运行后,将创建一个新工作簿并带有用户使用当前工作簿的信息,即用 户名、打开的日期和时间及工作簿使用方式。

示例03-22:检查工作簿是否有密码保护(HasPassword属性)

Sub IsPassword()

If ActiveWorkbook.HasPassword = True Then

MsgBox \本工作簿有密码保护,请在管理员处获取密码.\

http://fanjy.blog.exce丨home.net

ExcelVBA>>ExcelVBA 编程入门范例>> 第三章 Workbook 对象(fanjy)

Else

MsgBox \本工作簿无密码保护,您可以自由编辑.\ End If End Sub

示例03-23:决定列表边框是否可见(InactiveListBorderVisib丨e属性)

Sub HideListBorders()

MsgBox \隐藏当前工作簿中所有非活动列表的边框.\ActiveWorkbook.InactiveListBorderVisible = False End Sub

示例03-24:关闭工作簿

[示例 03-24-01] Sub CloseWorkbook1()

Msgbox “不保存所作的改变而关闭本工作簿” ActiveWorkbook.Close False

或 ActiveWorkbook.Close SaveChanges:=False 或 ActiveWorkbook.Saved=True End sub [示例 03-24-02] Sub CloseWorkbook2()

Msgbox “保存所作的改变并关闭本工作簿” ActiveWorkbook.Close True End sub [示例 03-24-03] Sub CloseWorkbook3()

Msgbox “关闭本工作簿。如果工作簿已发生变化,则弹出是否保存更改的对话框。” ActiveWorkbook.Close True End sub

[示例03-24-04]关闭并保存所有工作簿 Sub CloseA丨丨Workbooks() Dim Book As Workbook For Each Book In Workbooks

If Book.Name<>ThisWorkbook.Name Then Book.Close savechanges:=True End If Next Book

ThisWorkbook.Close savechanges:=True End Sub

[示例03-24-05]关闭工作簿并将它彻底删除 Sub KillMe()

With ThisWorkbook .Saved = True

.ChangeFileAccess Mode:=xlReadOnly

http://fanjy.blog.excelhome.net

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4