VFP控制 Excel 工作簿

Excel问题 | 2015-05-02 16:46:32 | 3802次阅读 | 0评
一、创建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

博友评论,共0条
浏览173156次
最新评论