Excel中用VBA-Worksheet基本操作应用示例 下载本文

内容发布更新时间 : 2024/5/6 21:49:14星期一 下面是文章的全部内容请认真阅读。

示例说明:代码中的<>里的内容需用所需打开的文件的路径及文件名代替。Open方法共有15个参数,其中参数FileName为必需的参数,其余参数可选。 [示例03-03-02]

Sub openWorkbook2() Dim fname As String

MsgBox \将D盘中的<测试.xls>工作簿以只读方式打开\ fname = \测试.xls\

Workbooks.Open Filename:=fname, ReadOnly:=True End Sub

示例03-04:将文本文件导入工作簿中(OpenText方法) Sub TextToWorkbook()

'本示例打开某文本文件并将制表符作为分隔符对此文件进行分列处理转换成为工作表

Workbooks.OpenText Filename:=\文本文件所在的路径>/<文本文件名>\ DataType:=xlDelimited, Tab:=True End Sub 示 例说明:代码中的<>里的内容需用所载入的文本文件所在路径及文件名代替。OpenText方法的作用是导入一个文本文件,并将其作为包含单 个工作表的工作簿进行分列处理,然后在此工作表中放入经过分列处理的文本文件数据。该方法共有18个参数,其中参数FileName为必需的参数,其余参 数可选。

示例03-05:保存工作簿(Save方法) [示例03-05-01] Sub SaveWorkbook()

MsgBox \保存当前工作簿.\ ActiveWorkbook.Save End Sub

[示例03-05-02]

Sub SaveAllWorkbook1() Dim wb As Workbook

MsgBox \保存所有打开的工作簿后退出Excel.\ For Each wb In Application.Workbooks wb.Save Next wb

Application.Quit End Sub

[示例03-05-03]

Sub SaveAllWorkbook2() Dim wb As Workbook

For Each wb In Workbooks

If wb.Path <> \ Next wb

End Sub

示例说明:本示例保存原来已存在且已打开的工作簿。

示例03-06:保存工作簿(SaveAs方法) [示例03-06-01]

Sub SaveWorkbook1()

MsgBox \将工作簿以指定名保存在默认文件夹中.\ ActiveWorkbook.SaveAs \工作簿名>.xls\End Sub

示例说明:SaveAs方法相当于“另存为??”命令,以指定名称保存工作簿。该方法有12个参数,均为可选参数。如果未指定保存的路径,那么将在默认文件夹中保存该工作簿。如果文件夹中该工作簿名已存在,则提示是否替换原工作簿。

[示例03-06-02]

Sub SaveWorkbook2()

Dim oldName As String, newName As String Dim folderName As String, fname As String oldName = ActiveWorkbook.Name newName = \

MsgBox \将<\以<\的名称保存\ folderName = Application.DefaultFilePath fname = folderName & \ ActiveWorkbook.SaveAs fname End Sub

示例说明:本示例将当前工作簿以一个新名(即new加原名)保存在默认文件夹中。

[示例03-06-03] Sub CreateBak1()

MsgBox \保存工作簿并建立备份工作簿\

ActiveWorkbook.SaveAs CreateBackup:=True End Sub

示例说明:本示例将在当前文件夹中建立工作簿的备份。 [示例03-06-04] Sub CreateBak2() MsgBox \保存工作簿时,若已建立了备份,则将出现包含True的信息框,否则出现False.\

MsgBox ActiveWorkbook.CreateBackup End Sub

示例03-07:取得当前打开的工作簿数(Count属性) Sub WorkbookNum()

MsgBox \当前已打开的工作簿数为:\End Sub

[NextPage] 示例03-08:激活工作簿(Activate方法) [示例03-08-01]

Sub ActivateWorkbook1()

Workbooks(\工作簿名>\End Sub

示例说明:Activate方法激活一个工作簿,使该工作簿为当前工作簿。 [示例03-08-02]

Sub ActivateWorkbook2() Dim n As Long, i As Long Dim b As String

MsgBox \依次激活已经打开的工作簿\ n = Workbooks.Count For i = 1 To n

Workbooks(i).Activate

b = MsgBox(\第 \个工作簿被激活,还要继续吗?\ If b = vbNo Then Exit Sub

If i = n Then MsgBox \最后一个工作簿已被激活.\ Next i End Sub

示例03-09:保护工作簿(Protect方法) Sub ProtectWorkbook()

MsgBox \保护工作簿结构,密码为123\

ActiveWorkbook.Protect Password:=\ MsgBox \保护工作簿窗口,密码为123\

ActiveWorkbook.Protect Password:=\ MsgBox \保护工作簿结构和窗口,密码为123\

ActiveWorkbook.Protect Password:=\Windows:=True End Sub 示 例说明:使用Protect方法来保护工作簿,带有三个可选参数,参数Password指明保护工作簿密码,要解除工作簿保护应输入此密码;参数 Structure设置为True则保护工作簿结构,此时不能对工作簿中的工作表进行插入、复制、删除等操作;参数Windows设置为True则保护工 作簿窗口,此时该工作簿右上角的最小化、最大化和关闭按钮消失。

示例03-10:解除工作簿保护(UnProtect方法) Sub UnprotectWorkbook() MsgBox \取消工作簿保护\

ActiveWorkbook.Unprotect \End Sub

示例03-11:工作簿的一些通用属性示例 Sub testGeneralWorkbookInfo()

MsgBox \本工作簿的名称为\

MsgBox \本工作簿带完整路径的名称为\ MsgBox \本工作簿对象的代码名为\ MsgBox \本工作簿的路径为\ If ActiveWorkbook.ReadOnly Then

MsgBox \本工作簿已经是以只读方式打开\ Else

MsgBox \本工作簿可读写.\ End If

If ActiveWorkbook.Saved Then MsgBox \本工作簿已保存.\ Else

MsgBox \本工作簿需要保存.\ End If End Sub

示例03-12:访问工作簿的内置属性(BuiltinDocumentProperties属性) [示例03-12-01]

Sub ShowWorkbookProperties() Dim SaveTime As String On Error Resume Next

SaveTime = ActiveWorkbook.BuiltinDocumentProperties(\Time\

If SaveTime = \

MsgBox ActiveWorkbook.Name & \工作簿未保存.\ Else

MsgBox \本工作簿已于\保存\ End If End Sub

示 例说明:在Excel中选择菜单“文件——属性”命令时将会显示一个“属性”对话框,该对话框中包含了当前工作簿的有关信息,可以在VBA中使用 BuiltinDocumentProperties属性访问工作簿的属性。上述示例代码将显示当前工作簿保存时的日期和时间。 [示例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(\End Sub 示例说明:本示例代码在“工作簿属性”工作表中列出了当前工作簿中的所有内置属性。

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

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

b = SheetExists(\指定的工作表名>\ If b = True Then