内容发布更新时间 : 2024/11/7 18:29:11星期一 下面是文章的全部内容请认真阅读。
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 示例说明:代码中<>中的内容为需要重命名的工作簿所在路径及新旧名称。该方法只是对未打开的文件进行重命名,如果该文件已经打开,使用该方法会提示错误。
[NextPage] 示例03-15:设置数字精度(PrecisionAsDisplayed属性) Sub SetPrecision() Dim pValue
MsgBox \在当前单元格中输入1/3,并将结果算至小数点后两位\ ActiveCell.Value = 1 / 3
ActiveCell.NumberFormatLocal = \ pValue = ActiveCell.Value * 3
MsgBox \当前单元格中的数字乘以3等于:\
MsgBox \然后,将数值分类设置为[数值],即单元格中显示的精度\ ActiveWorkbook.PrecisionAsDisplayed = True pValue = ActiveCell.Value * 3
MsgBox \此时,当前单元格中的数字乘以3等于:\而不是1\ ActiveWorkbook.PrecisionAsDisplayed = False End Sub
示例说明:PrecisionAsDisplayed属性的值设置为True,则表明采用单元格中所显示的数值进行计算。
示例03-16:删除自定义数字格式(DeleteNumberFormat方法) Sub DeleteNumberFormat()
MsgBox \从当前工作簿中删除000-00-0000的数字格式\ ActiveWorkbook.DeleteNumberFormat (\End Sub
示例说明:DeleteNumberFormat方法将从指定的工作簿中删除自定义的数字格式。
示例03-17:控制工作簿中图形显示(DisplatyDrawingObjects属性) Sub testDraw()
MsgBox \隐藏当前工作簿中的所有图形\
ActiveWorkbook.DisplayDrawingObjects = xlHide MsgBox \仅显示当前工作簿中所有图形的占位符\
ActiveWorkbook.DisplayDrawingObjects = xlPlaceholders MsgBox \显示当前工作簿中的所有图形\
ActiveWorkbook.DisplayDrawingObjects = xlDisplayShapes End Sub
示例说明:本属性作用的对象包括图表和形状。在应用本示例前,应保证工作簿中有图表或形状,以察看效果。
示例03-18:指定名称(Names属性) Sub testNames()
MsgBox \将当前工作簿中工作表Sheet1内单元格A1命名为myName.\ ActiveWorkbook.Names.Add Name:=\RefersToR1C1:=\End Sub
示例说明:对于Workbook对象而言,Names属性返回的集合代表工作簿中的所有名称。
示例03-19:检查工作簿的自动恢复功能(EnableAutoRecover属性) Sub UseAutoRecover()
'检查是否工作簿自动恢复功能开启,如果没有则开启该功能 If ActiveWorkbook.EnableAutoRecover = False Then ActiveWorkbook.EnableAutoRecover = True MsgBox \刚开启自动恢复功能.\ Else
MsgBox \自动恢复功能已开启.\ 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 示例说明:示例代码运行后,将创建一个新工作簿并带有用户使用当前工作簿的信息,即用户名、打开的日期和时间及工作簿使用方式。
[NextPage] 示例03-22:检查工作簿是否有密码保护(HasPassword属性) Sub IsPassword()
If ActiveWorkbook.HasPassword = True Then
MsgBox \本工作簿有密码保护,请在管理员处获取密码.\ Else
MsgBox \本工作簿无密码保护,您可以自由编辑.\ End If End Sub
示例03-23:决定列表边框是否可见(InactiveListBorderVisible属性) 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 CloseAllWorkbooks() 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 Kill .FullName .Close False End With End Sub
[示例03-24-06]关闭所有工作簿,若工作簿已改变则弹出是否保存变化的对话框
Sub closeAllWorkbook()
MsgBox \关闭当前所打开的所有工作簿\ Workbooks.Close End Sub
<其它一些有关操作工作簿的示例> 示例03-25:创建新的工作簿 Sub testNewWorkbook()
MsgBox \创建一个带有10个工作表的新工作簿\Dim wb as Workbook
Set wb = NewWorkbook(10) End Sub
‘- - - - - - - - - - - - - - - - - - - - - - - Function NewWorkbook(wsCount As Integer) As Workbook
'创建带有由变量wsCount提定数量工作表的工作簿,工作表数在1至255之间 Dim OriginalWorksheetCount As Long Set NewWorkbook = Nothing
If wsCount < 1 Or wsCount > 255 Then Exit Function
OriginalWorksheetCount = Application.SheetsInNewWorkbook Application.SheetsInNewWorkbook = wsCount Set NewWorkbook = Workbooks.Add
Application.SheetsInNewWorkbook = OriginalWorksheetCount End Function
示例说明:自定义函数NewWorkbook可以创建最多带有255个工作表的工作簿。本测试示例创建一个带有10个工作表的新工作簿。
示例03-26:判断工作簿是否存在 Sub testFileExists()
MsgBox \如果文件不存在则用信息框说明,否则打开该文件.\ If Not FileExists(\文件夹\\子文件夹\\文件.xls\ MsgBox \这个工作簿不存在!\ Else
Workbooks.Open \文件夹\\子文件夹\\文件.xls\ End If End Sub
‘- - - - - - - - - - - - - - - - - - - - - - -
Function FileExists(FullFileName As String) As Boolean '如果工作簿存在,则返回True
FileExists = Len(Dir(FullFileName)) > 0 End Function
示例说明:本示例使用自定义函数FileExists判断工作簿是否存在,若该工作簿已存在,则打开它。代码中,“C:\\文件夹\\子文件夹\\文件.xls”代表工作簿所在的文件夹名、子文件夹名和工作簿文件名。
示例03-27:判断工作簿是否已打开 [示例03-27-01]