milo.jiang 发表于 2007-8-22 22:13:07

QTP中如何实现删除EXCEL的某几行

在EXCEL的VBA中可以直接通过objSheet.Rows(i).delete实现删除某行,可是在QTP中却无法运行以上脚本,请教高手如何能够实现?

walker1020 发表于 2007-8-23 00:47:46

为什么要删除某几行的数据? 要知道脚本里面要用到这些数据呢。实在 不行就手动删除吧

hsjzfling 发表于 2007-8-23 02:04:00

把删除行的代码完整的写在VBS中,然后用QTP执行Executefile "..\xxx.vbs",这样应该能达到目的,尝试下吧~

yuandjing 发表于 2007-8-23 08:31:08

我可以提供一个自己写的删除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

yuandjing 发表于 2007-8-23 08:32:47

删除就是写入空值就可以了
如果脚本跑到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版本不同

milo.jiang 发表于 2007-8-23 09:07:32

谢谢大家的指点,我尝试一下以上方法,再将可行方法的实例附上,谢谢

bobile 发表于 2007-8-23 09:54:26

说的不是很详细了

v_v 发表于 2007-8-26 01:04:01

回复 #6 milo.jiang 的帖子

期待中。。。。

nkzyb 发表于 2007-8-26 09:29:07

我一般都是手动删除来修改数据表格的,那样也挺快的

sstars 发表于 2007-8-26 21:48:27

....
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
...

450683057 发表于 2012-9-26 17:43:50

'清空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]
查看完整版本: QTP中如何实现删除EXCEL的某几行