'以下VBS为一个例子,演示VBS对于EXCEL文件的常用操作
'MSDN上关于EXCEL 2003的链接 http://msdn.microsoft.com/en-us/library/aa272254(v=office.11).aspx
On Error Resume Next '出现错误时继续运行,以便能运行到最后,关闭脚本打开的EXCEL.EXE进程
Set exlApp = CreateObject("Excel.Application") '创建对象
vbsFullname = WScript.ScriptFullName
vbsPath = Left(vbsFullname, InstrRev(vbsFullname, "\")) '得到运行的VBS文件所在路径
Set exlWorkbook = exlApp.Workbooks.Open(vbsPath & xlsFilename) '创建对象,这里必须用绝对路径
Set rng = exlWorkbook.Worksheets(1).Usedrange '得到EXCEL中第一个工作表里有数据的区域
'Set rng = exlWorkbook.Worksheets(1).Range("B1") '选择B1这个单元格
'Set rng = exlWorkbook.Worksheets(1).Cells(1,2) '选择B1这个单元格
'Set rng = exlWorkbook.Worksheets(1).Range("C5:D9,G9:H16") '选择C5-D9和G9-H16两个区域
'Set rng = exlWorkbook.Worksheets(1).Range("A:A") '选择A列
'Set rng = exlWorkbook.Worksheets(1).Range("1:1,3:3,8:8") '选择第1、2、8行
rows = rng.Rows.Count '得到该区域的行数
cols = rng.Rows.Column '得到该区域的列数
rng.Copy exlWorkbook.Worksheets(2).Range("A1") '将该区域的内容复制到第二个工作表中
exlWorkbookDst.Worksheets(1).Activate() '使工作表为活动的状态
exlWorkbookDst.Worksheets(1).cells(1,1).select '选中(点击)第一个表的第一个单元格,这里对单元格操作必须保证它是活动的状态
exlWorkbookDst.Worksheets(1).cells(1,1) = "测试" '第一个单元格中写入内容"测试"
'------------------------------------------------
Set conn = CreateObject("adodb.connection")
Set rs = CreateObject("adodb.recordset")
conn.Open "provider=microsoft.jet.oledb.4.0;extended properties=excel 8.0;data source="&anotherXlsFilename '将另一个excel文件作为数据源打开
rs.Open "Select * from [Sheet1$]",conn,1,3 '将名为Sheet1的工作表作为数据库的表来操作,这里必须写成 [名称$]
exlWorkbook.Worksheets(3).Range("A1").CopyFromRecordset rs '将记录集rs中的内容复制到之前EXCEL文件的第三个工作表中
exlApp.DisplayAlerts = False
exlWorkbookDst.Worksheets(2).Delete '删除Sheet4这个工作表,删除前后必须加DisplayAlerts关闭提示,否则不成功
exlApp.DisplayAlerts = True
'------------------------退出时关闭EXCEL
If Err Then
MsgBox "运行时出现了错误" '不正常运行时的退出
exlApp.DisplayAlerts = False '由于这里关闭时不需要保存,所以关闭提示不让程序弹出是否保存的窗口
exlApp.Application.Quit
Wscript.Quit
Else
exlWorkbookDst.close True '关闭EXCEL,True表示保存更改,False,不保存
exlApp.Application.Quit '正常运行时的退出,如果之前没有保存过,会弹出是否保存的提示
End If
'注意,如果将一个工作表中的关闭后,再对它进行操作,会有报错:"被调用的对象已与其客户端断开连接(The connection for viewing your linked Microsoft Excel worksheet was lost)"