QTP中如何实现删除EXCEL的某几行
在EXCEL的VBA中可以直接通过objSheet.Rows(i).delete实现删除某行,可是在QTP中却无法运行以上脚本,请教高手如何能够实现? 为什么要删除某几行的数据? 要知道脚本里面要用到这些数据呢。实在 不行就手动删除吧 把删除行的代码完整的写在VBS中,然后用QTP执行Executefile "..\xxx.vbs",这样应该能达到目的,尝试下吧~ 我可以提供一个自己写的删除vbs的函数'写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
srcData.Workbooks.Close
Set srcDoc = nothing
Window("text:=Microsoft Excel").Close
End Function 删除就是写入空值就可以了
如果脚本跑到Window(a1).WinObject(a3).Type micCtrlDwn + "s" + micCtrlUp就停了,请把
a1("text").value="Microsoft Excel - " + use + ".xls"
a3("text").value= use + ".xls"
改为
a1("text").value="Microsoft Excel - " + use
a3("text").value= use
就可以了
因为EXCEL版本不同 谢谢大家的指点,我尝试一下以上方法,再将可行方法的实例附上,谢谢 说的不是很详细了
回复 #6 milo.jiang 的帖子
期待中。。。。 我一般都是手动删除来修改数据表格的,那样也挺快的 ....Set xsl= CreateObject("Excel.Application")
xsl.Application.DisplayAlerts = False
Set workbook= XLApp.Workbooks.Open("d:\ab.xls",readOnly=False)
workbook.Sheets("Sheet1").Rows(1).delete
... '清空Excel中数据
SetExcelObj=CreateObject("Excel.Application")
xlsUrl="D:\QTP—数据中心\TestDate\OrderDate.xls"
'打开工作表
ExcelObj.Workbooks.Open(xlsUrl)
'清空工作表中数据
Set oSheet =ExcelObj.ActiveSheet
FOR i=30 TO 1 STEP -1
osheet.Rows(i).delete
Next
Set Shell = CreateObject("WScript.Shell")
Set ShellResult = Shell.Exec("TaskList")
页:
[1]