现在OK了
'写Excel文件元素并保存退出
Public Function QTP_Write_Excel(pathway,sheetname,x,y,content)
Dim srcData,srcDoc,sp1,sp2,num,use,a1,a2,a3
set srcData = CreateObject("Excel.Application")
srcData.Visible = True
set srcDoc = srcData.Workbooks.Open(pathway)
srcDoc.Worksheets(sheetname).Activate
srcDoc.Worksheets(sheetname).Cells(x,y).value = content
' sp1 = Split(pathway,".")
' sp2 = Split(sp1(0),"\")
' num = UBound(sp2)
' use = sp2(num)
' Set a1 = Description.Create()
' a1("text").value="Microsoft Excel - " + use + ".xls"
' a1("window id").value="0"
' Set a3 = Description.Create()
' a3("Class Name").value="WinObject"
' a3("text").value= use + ".xls"
' Window(a1).WinObject(a3).Type micCtrlDwn + "s" + micCtrlUp
Dim WshShell
Set WshShell=CreateObject("Wscript.Shell")
WshShell.SendKeys "^s"
wait(1)
srcData.Workbooks.Close
Set srcDoc = nothing
Window("text:=Microsoft Excel").Close
End Function yuandjing ,你能否说一下 #42 中的许多语句被注释掉的原因吗?谢谢! 回walker1020大哥:
原来是想用描述性编程的思想实现点击ctrl+s进行保存操作Window(a1).WinObject(a3).Type micCtrlDwn + "s" + micCtrlUp
后来发现Excel版本不同,描述性编程的值也不同,有些认a1("text").value="Microsoft Excel - " + use + ".xls",有些认a1("text").value="Microsoft Excel - " + use
所以后来改用sendkey的方法:WshShell.SendKeys "^s"
来实现了crtl+s进行保存了,各个版本的excel就都适用了 非常感谢yuandjing 的回复。原来是这样,yuandjing 考虑问题真周到,因为你还考虑到了各个Excel 的兼容性,受教了。 多谢! 学习了 关注!
回复 #42 yuandjing 的帖子
我有一个问题,就是pathway必须是绝对路径,对于脚本移置不大方便,有没有用相对路径的办法啊?sdlkfj6 学习中 原帖由 木卫十二 于 2007-9-3 09:47 发表 http://bbs.51testing.com/images/common/back.gif我有一个问题,就是pathway必须是绝对路径,对于脚本移置不大方便,有没有用相对路径的办法啊?sdlkfj6
我试了一下,相对路径是可以的,比如vbs保存在C:\vbs文件夹下,excel在c:\下
只要call QTP_Write_Excel("../xxx.xls","sheetname",1,1,"content")就可以了 sdlkfj2 好 代码 顶一下 这个lib很有用啊!