木落 发表于 2010-8-2 12:30:03

VBS对Excel表进行排序

对Excel表中的数据进行处理判断,由于数据量很大,所以相对数据进行列排序,用VBS如何实现。

skyzhu 发表于 2010-8-2 13:26:27

在Excel里排序就是了。。。
真要用VBS的话,就用VBS去调用 EXCEL对象,也就是类似EXCEL的宏(VBA)
录一下宏就明白了

木落 发表于 2010-8-2 14:22:29

回复 2# 的帖子

调用对象,这个我知道,就是不知道具体的那个方法,麻烦哥们儿给段代码参考一下

feiyunkai 发表于 2010-8-2 16:37:12

使用ADO对EXCEL(97-2003)进行排序

'该方法的优点是不会改变EXCEL内容的实际排序,另外还可以根据实际需要直接查询所需数据
'EXCEL内容与输出结果见附件,以下代码是按username 倒序输出username,password
filepath="EXCEL路径"'这里输入EXCEL的实际路径
Set conn= createobject("ADODB.Connection")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&filepath&";Extended Properties=Excel 8.0"    '8.0为EXCEL97-2000
Set rs=CreateObject("ADODB.Recordset")
rs.Open "Select username,password from order by username desc",conn
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内容:



'若有问题,可以加MSN进一步讨论。MSN:yunkai614221@live.cn

[ 本帖最后由 feiyunkai 于 2010-8-2 16:59 编辑 ]

feiyunkai 发表于 2010-8-3 09:59:01

VBS对Excel表进行排序(方法如下)

步骤一:录制排序的宏(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

819longjiayan 发表于 2011-7-22 16:32:57

:lol学到了

819longjiayan 发表于 2011-7-22 16:33:04

:lol学到了
页: [1]
查看完整版本: VBS对Excel表进行排序