'以下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)"

03-15 06:57