51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3799|回复: 10
打印 上一主题 下一主题

[原创] QTP中如何实现删除EXCEL的某几行

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-8-22 22:13:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在EXCEL的VBA中可以直接通过objSheet.Rows(i).delete实现删除某行,可是在QTP中却无法运行以上脚本,请教高手如何能够实现?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    2#
    发表于 2007-8-23 00:47:46 | 只看该作者
    为什么要删除某几行的数据? 要知道脚本里面要用到这些数据呢。实在 不行就手动删除吧
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
    发表于 2007-8-23 02:04:00 | 只看该作者
    把删除行的代码完整的写在VBS中,然后用QTP执行Executefile "..\xxx.vbs",这样应该能达到目的,尝试下吧~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
    发表于 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
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
    发表于 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版本不同
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
     楼主| 发表于 2007-8-23 09:07:32 | 只看该作者
    谢谢大家的指点,我尝试一下以上方法,再将可行方法的实例附上,谢谢
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
    发表于 2007-8-23 09:54:26 | 只看该作者
    说的不是很详细了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
    发表于 2007-8-26 01:04:01 | 只看该作者

    回复 #6 milo.jiang 的帖子

    期待中。。。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
    发表于 2007-8-26 09:29:07 | 只看该作者
    我一般都是手动删除来修改数据表格的,那样也挺快的
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
    发表于 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
    ...
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-1-29 13:51
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    11#
    发表于 2012-9-26 17:43:50 | 只看该作者
    '清空Excel中数据
            Set  ExcelObj=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 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-9-23 17:21 , Processed in 0.092394 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表