TA的每日心情 | 奋斗 2014-12-18 10:31 |
---|
签到天数: 1 天 连续签到: 1 天 [LV.1]测试小兵
|
本帖最后由 feiyunkai 于 2010-12-20 18:14 编辑
今天看了个帖子,VBS脚本怎样对EXCEL排序,我回复了2个方法,感觉可能对大家有用,所以把回复的内容独立出来,希望对大家有所帮助,谢谢!(原帖连接:http://bbs.51testing.com/viewthread.php?tid=280755&extra=page%3D1%26amp%3Bfilter%3Dtype%26amp%3Btypeid%3D12)
一、创建ADO对象,把EXCEL当作数据库对EXCEL中数据进行(增、删、改、查)
具体代码如下(若想对EXCEL进行增、删、改、查,修改红色部分的SQL语句即可):
'以下代码是按username 倒序输出username,password
filepath="D:\test.xls" '这里输入EXCEL的实际路径
Set conn= createobject("ADODB.Connection") '创建ADO对象
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&filepath&";Extended Properties=Excel 8.0" 'ADO连接字符串8.0为EXCEL97-2003
Set rs=CreateObject("ADODB.Recordset") '创建记录集
rs.Open "Select username,password from [Sheet1$] order by username desc",conn '这里的SQL语句与SQL中的区别是表名后要加个美圆符号$
Do
If not rs.eof Then
username=rs("username")
password=rs("password")
print "username:"&username&" password:"&password
rs.MoveNext
else
msgbox "没有记录"
End If
loop until rs.eof=true
conn.close
Set rs=nothing
Set conn = nothing
'修改EXCEL数据:
filepath="D:\test.xls"
Set conn= createobject("ADODB.Connection")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&filepath&";Extended Properties=Excel 8.0"
Set rs=CreateObject("ADODB.Recordset")
rs.Open "update [Sheet1$] set username='修改后内容' where username='finger07'",conn
conn.close
Set rs=nothing
Set conn = nothing
'附加说明:
'若要打开EXCEL2007,需要修改连接字符串(橘黄色部分),修改为:"Provider=Microsoft.Ace.OLEDB.12.0;Data Source="&filepath&";Extended Properties=Excel 12.0"
二、利用EXCEL宏,对数据进行各种操作(具体操作要预先录制成宏,然后使用VBS调用宏即可)
步骤一:录制排序的宏(EXCEL2007录制宏步骤:点击视图,点击宏,点击录制宏,输入宏名称(假设取名为:paixu),点击确定,然后对EXCEL进行排序操作,排序完点击停止录制,保存EXCEL)
步骤二:VBS中调用宏,代码如下:
Set excel=CreateObject("excel.application")
Set excelbooks=excel.Workbooks.Open("D:\test.xls") '把D:\test.xls修改为EXCEL所在路径
excel.DisplayAlerts = False '设置EXCEL静默保存
excel.Run"paixu" '这里的paixu为刚才录制的宏的名称
excelbooks.Save
excelbooks.Close
excel.Quit
Set excelbooks=Nothing
Set excel=nothing
[ 本帖最后由 feiyunkai 于 2010-8-6 17:57 编辑 ] |
|