作者在 2015-05-02 16:46:32 发布以下内容
一、创建Excel对象
oExcel=CreateObject('Excel.Application')
二、控制工作簿
2.1 新建工作簿
2.1.1 新建空白工作簿
1、默认为3个工作表
oExcel.WorkBooks.Add
2、新建一个仅包含一个工作表的工作簿
oExcel.WorkBooks.Add(-4167)
说明:
●在 Excel 中表示工作簿的关键字有 WorkBooks (工作簿集合对象)和 WorkBook (工作簿对象)。它们之间是集合与集合中对象的关系,即 WorkBooks 是 WorkBook 的集合。
●oExcel.WorkBooks.Add:利用工作簿集合的 Add 方法来添加新工作簿。Add 方法常用于在一个集合对象中新建一个子对象。
在新建工作簿时,下面的代码是错误的。
oExcel.WorkBook.Add
注意:
●WorkBook 不是集合对象,没有 Add 方法。
●在Excel VBA 中区分集合对象与非集合对象的方法是看该对象有没有后缀“s”。
2.1.2 在指定位置新建工作簿
在新建工作簿后,一般要保存到指定位置。
在C盘新建一个工作簿并命名为 Book1.Xls
oExcel=CreateObject('Excel.Application')
oExcel.WorkBooks.Add
oExcel.ActiveWorkbook.SaveAs("C:\Book1.xls")
说明:
●上面的代码中使用了 .WorkBooks.Add 方法新建了一个空白工作簿,并且使用了工作簿对象的 SaveAs (另存为)方法对新建的工作簿进行保存。SaveAs 方法的用法详见后面。
2.2 打开工作簿
2.2.1 打开指定工作簿
由于每个工作簿都有相对应的路径,而且在硬盘其它位置中还可能存在有同样文件名的 Excel 文件,所以在打开文件时一定要指定路径。
打开指定工作簿的代码如下:
oExcel=CreateObject('Excel.Application')
oExcel.WorkBooks.Open("C:\Book1.xls")
注意:
●如果所指定的文件不存在,会弹出错误提示信息框。
2.2.2 打开密码保护的工作簿
打开C盘中文件名为 Book1.Xls,并且密码为“123456”
的文件,代码如下:
oExcel=CreateObject('Excel.Application')
oExcel.WorkBooks.Open("C:\Book1.xls",,.T.,,"123456")
说明:
●代码中的“.T.”表示以只读模式打开 Book1.Xls。
2.2.3 判断一个工作簿是已经打开
当已经打开多个工作簿,下面的代码可以识别某个工作簿是否处于打开状态。
oExcel=CreateObject("Excel.Application") && 创建Excel对象
With oExcel
.WorkBooks.Open("C:\Book1.xls",,.T.,,"123456")
For lnI=1 To .WorkBooks.Count
If .WorkBooks(lnI).Name=="Book1.xls"
MessageBox("工作簿"+.WorkBooks(lnI).Name+" 已打开")
Exit
EndIf
EndFor
.Visible=.T.
EndWith
说明:
●.WorkBooks.Count:工作簿个数,这里利用 WorkBooks 集合对象的 Count 属性取得当前打开的工作簿数量。
●.WorkBooks(lnI):表示第 lnI 个工作簿,如在当前打开的工作簿中,.WorkBooks(1) 即表示第一个工作簿。括号中的数字和工作簿打开的先后顺序有关。
●.WorkBooks(lnI).Name:工作簿的文件名,这里利用 WorkBooks 集合对象的 Name 属性取得当前按顺序打开的工作簿的文件名。
注意:
●.WorkBooks(lnI).Name=="Book1.xls":注意工作簿文件名的大小写状态。.WorkBooks(lnI).Name 返回的文件名中的扩展名是小写状态。
2.3 保存工作簿
保存工作簿分为:保存修改后的结果、另存为其它工作簿。
2.3.1 保存修改后的结果
文件在修改后需要保存,保存操作的代码如下:
代码 1
oExcel.WorkBooks("工作簿文件名").Save
代码 2
oExcel.ActiveWorkBook.Save
说明:
●代码 1 是保存指定的工作簿,代码 2 是保存当前工作簿。
●.WorkBooks("工作簿文件名"):表示指定名称的工作簿。
2.3.2 另存为其它 Excel 文件
1、指定路径另存为其它文件
oExcel.WorkBooks("工作簿文件名").SaveAs 工作簿文件名前要加完整路径
当前文件关闭并把该文件另存到C盘,文件名命名为“Book2.Xls”
oExcel.ActiveWorkbook.SaveAs("C:\Book2.Xls)
2、指定路径备份文件:
oExcel.WorkBooks("工作簿文件名").SaveCopyAs 工作簿文件名前要加完整路径
把当前文件备份到C盘,文件名命名为“Book2.Xls”,当前文件不关闭。
oExcel.ActiveWorkbook.SaveCopyAs("C:\Book2.Xls)
3、指定路径另存,并添加打开工作簿的密码保护
oExcel.WorkBooks("工作簿文件名").SaveAs(,-4143,"123","321")
把当前文件另存到C盘,文件名命名为“Book2.Xls“,打开密码设置为“123”,密码修改权限密码设置为“321”。
oExcel.ActiveWorkbook.SaveAs("C:\Book2.Xls",-4143,"123","321")
2.4 关闭工作簿
2.4.1 关闭所有工作簿
把当前打开的所有工作簿关闭。
oExcel.WorkBooks.Close
说明:
●关闭所有工作簿使用了 WorkBooks 集合对象的 Close 方法。这里需要注意的是,不能用 WorkBook 代替 WorkBooks,否则就会出现错误。
●如果某个打开的工作簿有改变,Microsoft Excel 将显示询问是否保存更改的对话框和相应提示。
2.4.2 关闭指定工作簿
当打开多个工作簿时,可以用下面的代码关闭指定的工作簿。
oExcel.WorkBooks("工作簿文件名").Close
关闭C盘 Book1.Xls 工作簿。
oExcel.WorkBooks("C:\Book1.Xls").Close
注意
●指定关闭的工作簿必须处于打开状态,否则会出现错误提示。
2.4.3 工作簿关闭前是否保存
在关闭 Excel 工作簿时,如果该工作簿有改动,则在关闭时弹出是否保存的提示对话框,下面的代码可以在程序中设置是否保存,并且关闭前是否保存提示框不再出现。
1、关闭指定工作簿前保存
oExcel.WorkBooks("工作簿文件名").Close(.T.)
2、关闭指定工作簿前不保存
oExcel.WorkBooks("工作簿文件名").Close(.F.)
3、关闭当前工作簿前保存(提示另存)
oExcel.ActiveWorkBook.Close(.T.)
4、关闭当前工作簿前不保存
oExcel.ActiveWorkBook.Close(.F.)
5、关闭当前工作簿,有修改则提示
oExcel.ActiveWorkBook.Close
2.4.4 退出 Excel
1、退出Excel
oExcel.Quit
2、释放实例变量oExcel
Release oExcel
oExcel=CreateObject('Excel.Application')
二、控制工作簿
2.1 新建工作簿
2.1.1 新建空白工作簿
1、默认为3个工作表
oExcel.WorkBooks.Add
2、新建一个仅包含一个工作表的工作簿
oExcel.WorkBooks.Add(-4167)
说明:
●在 Excel 中表示工作簿的关键字有 WorkBooks (工作簿集合对象)和 WorkBook (工作簿对象)。它们之间是集合与集合中对象的关系,即 WorkBooks 是 WorkBook 的集合。
●oExcel.WorkBooks.Add:利用工作簿集合的 Add 方法来添加新工作簿。Add 方法常用于在一个集合对象中新建一个子对象。
在新建工作簿时,下面的代码是错误的。
oExcel.WorkBook.Add
注意:
●WorkBook 不是集合对象,没有 Add 方法。
●在Excel VBA 中区分集合对象与非集合对象的方法是看该对象有没有后缀“s”。
2.1.2 在指定位置新建工作簿
在新建工作簿后,一般要保存到指定位置。
在C盘新建一个工作簿并命名为 Book1.Xls
oExcel=CreateObject('Excel.Application')
oExcel.WorkBooks.Add
oExcel.ActiveWorkbook.SaveAs("C:\Book1.xls")
说明:
●上面的代码中使用了 .WorkBooks.Add 方法新建了一个空白工作簿,并且使用了工作簿对象的 SaveAs (另存为)方法对新建的工作簿进行保存。SaveAs 方法的用法详见后面。
2.2 打开工作簿
2.2.1 打开指定工作簿
由于每个工作簿都有相对应的路径,而且在硬盘其它位置中还可能存在有同样文件名的 Excel 文件,所以在打开文件时一定要指定路径。
打开指定工作簿的代码如下:
oExcel=CreateObject('Excel.Application')
oExcel.WorkBooks.Open("C:\Book1.xls")
注意:
●如果所指定的文件不存在,会弹出错误提示信息框。
2.2.2 打开密码保护的工作簿
打开C盘中文件名为 Book1.Xls,并且密码为“123456”
的文件,代码如下:
oExcel=CreateObject('Excel.Application')
oExcel.WorkBooks.Open("C:\Book1.xls",,.T.,,"123456")
说明:
●代码中的“.T.”表示以只读模式打开 Book1.Xls。
2.2.3 判断一个工作簿是已经打开
当已经打开多个工作簿,下面的代码可以识别某个工作簿是否处于打开状态。
oExcel=CreateObject("Excel.Application") && 创建Excel对象
With oExcel
.WorkBooks.Open("C:\Book1.xls",,.T.,,"123456")
For lnI=1 To .WorkBooks.Count
If .WorkBooks(lnI).Name=="Book1.xls"
MessageBox("工作簿"+.WorkBooks(lnI).Name+" 已打开")
Exit
EndIf
EndFor
.Visible=.T.
EndWith
说明:
●.WorkBooks.Count:工作簿个数,这里利用 WorkBooks 集合对象的 Count 属性取得当前打开的工作簿数量。
●.WorkBooks(lnI):表示第 lnI 个工作簿,如在当前打开的工作簿中,.WorkBooks(1) 即表示第一个工作簿。括号中的数字和工作簿打开的先后顺序有关。
●.WorkBooks(lnI).Name:工作簿的文件名,这里利用 WorkBooks 集合对象的 Name 属性取得当前按顺序打开的工作簿的文件名。
注意:
●.WorkBooks(lnI).Name=="Book1.xls":注意工作簿文件名的大小写状态。.WorkBooks(lnI).Name 返回的文件名中的扩展名是小写状态。
2.3 保存工作簿
保存工作簿分为:保存修改后的结果、另存为其它工作簿。
2.3.1 保存修改后的结果
文件在修改后需要保存,保存操作的代码如下:
代码 1
oExcel.WorkBooks("工作簿文件名").Save
代码 2
oExcel.ActiveWorkBook.Save
说明:
●代码 1 是保存指定的工作簿,代码 2 是保存当前工作簿。
●.WorkBooks("工作簿文件名"):表示指定名称的工作簿。
2.3.2 另存为其它 Excel 文件
1、指定路径另存为其它文件
oExcel.WorkBooks("工作簿文件名").SaveAs 工作簿文件名前要加完整路径
当前文件关闭并把该文件另存到C盘,文件名命名为“Book2.Xls”
oExcel.ActiveWorkbook.SaveAs("C:\Book2.Xls)
2、指定路径备份文件:
oExcel.WorkBooks("工作簿文件名").SaveCopyAs 工作簿文件名前要加完整路径
把当前文件备份到C盘,文件名命名为“Book2.Xls”,当前文件不关闭。
oExcel.ActiveWorkbook.SaveCopyAs("C:\Book2.Xls)
3、指定路径另存,并添加打开工作簿的密码保护
oExcel.WorkBooks("工作簿文件名").SaveAs(,-4143,"123","321")
把当前文件另存到C盘,文件名命名为“Book2.Xls“,打开密码设置为“123”,密码修改权限密码设置为“321”。
oExcel.ActiveWorkbook.SaveAs("C:\Book2.Xls",-4143,"123","321")
2.4 关闭工作簿
2.4.1 关闭所有工作簿
把当前打开的所有工作簿关闭。
oExcel.WorkBooks.Close
说明:
●关闭所有工作簿使用了 WorkBooks 集合对象的 Close 方法。这里需要注意的是,不能用 WorkBook 代替 WorkBooks,否则就会出现错误。
●如果某个打开的工作簿有改变,Microsoft Excel 将显示询问是否保存更改的对话框和相应提示。
2.4.2 关闭指定工作簿
当打开多个工作簿时,可以用下面的代码关闭指定的工作簿。
oExcel.WorkBooks("工作簿文件名").Close
关闭C盘 Book1.Xls 工作簿。
oExcel.WorkBooks("C:\Book1.Xls").Close
注意
●指定关闭的工作簿必须处于打开状态,否则会出现错误提示。
2.4.3 工作簿关闭前是否保存
在关闭 Excel 工作簿时,如果该工作簿有改动,则在关闭时弹出是否保存的提示对话框,下面的代码可以在程序中设置是否保存,并且关闭前是否保存提示框不再出现。
1、关闭指定工作簿前保存
oExcel.WorkBooks("工作簿文件名").Close(.T.)
2、关闭指定工作簿前不保存
oExcel.WorkBooks("工作簿文件名").Close(.F.)
3、关闭当前工作簿前保存(提示另存)
oExcel.ActiveWorkBook.Close(.T.)
4、关闭当前工作簿前不保存
oExcel.ActiveWorkBook.Close(.F.)
5、关闭当前工作簿,有修改则提示
oExcel.ActiveWorkBook.Close
2.4.4 退出 Excel
1、退出Excel
oExcel.Quit
2、释放实例变量oExcel
Release oExcel