[原创文章] 比较Excel的VBS函数

用VBS比较两个Excel文件的数据 阅读详情

QTP中Excel的比较

作者:Wally Yu (微博: http://weibo.com/quicktest)

最近在SQAForum经常有人提出关于比较两个Excel的值的问题的帖子

例如:

http://www.sqaforums.com/showflat.php?Cat=0&Number=549014&an=0&page=0#Post549014

http://www.sqaforums.com/showflat.php?Cat=0&Number=567634&an=0&page=0#Post567634

 

国人肯定在此问题上也会有一定的困惑,我把自己写的一些函数发出来,给大家予以一定的启发和思路

 

两个Excel比较的函数:

'*************************************************

'**     Functionality: compare two excels

'**     input parameter:

'**               excelFullPath1 - the first excelsheet

'**               excelFullPath2 - the secondexcel sheet

'**     output: if excel sheet are equal, return "equal",else return difference

'**     Author: Wally Yu in Shanghai,quicktest@yahoo.cn

'**     Date:1st May 2009

'*************************************************

Function CompareExcelSheet(excelFullPath1, excelFullPath2,sheetName)

     Dim rows1,rows2, columns1, columns2,ret, i,j, tempDoc1,tempDoc2, diffFlag

     diffFlag = False

 

     Dim srcData1,srcDoc1

     set srcData1 =CreateObject("Excel.Application")

     srcData1.Visible = False

     set srcDoc1 =srcData1.Workbooks.Open(excelFullPath1)

     srcDoc1.Worksheets(sheetname).Activate

     rows1 =srcDoc1.Worksheets(sheetname).UsedRange.rows.Count

     columns1 =srcDoc1.Worksheets(sheetname).UsedRange.columns.Count

    

     Dim srcData2,srcDoc2

     set srcData2 =CreateObject("Excel.Application")

     srcData2.Visible = False

     set srcDoc2 =srcData2.Workbooks.Open(excelFullPath2)

     srcDoc2.Worksheets(sheetname).Activate

     rows2 =srcDoc1.Worksheets(sheetname).UsedRange.rows.Count

     columns2 = srcDoc1.Worksheets(sheetname).UsedRange.columns.Count

    

     If (rows1 <> rows2) Or (columns1<> columns2) Then

                 ret = "Excel sheet "& sheetName & "used ranges are not equal"

                 diffFlag = True

     Else

                 For i = 1 To rows1

                             For j = 1 Tocolumns1

                                         tempDoc1= srcDoc1.Worksheets(sheetname).Cells(i,j).value

                                         tempDoc2= srcDoc2.Worksheets(sheetname).Cells(i,j).value

                                         IftempDoc1 <> tempDoc2 Then

                                                     diffFlag= True

                                                     ret= ret & "cell(" & i & ","& j & ") values are differert: value1 = " & tempDoc1& ", value2 = " &tempDoc2 & vbCrLf

                                         End If

                             Next

                 Next

                 ret = "Excel sheet "& sheetName & "cells are different:" & vbCrLf & ret

     End If

     If diffFlag = False Then

                 ret = "equal"

     End If

     'srcDoc1.Close

     'scrDoc2.Close

     CompareExcelSheet = ret

     srcData1.Workbooks.Close

     srcData2.Workbooks.Close

     srcData1.Quit

     srcData2.Quit

'    QTP_Read_Excel = ret

End Function


读取Excel单元格的函数:

 

PublicFunction readExcelCell(pathway,sheetname,x,y)

     On Error Resume Next

     Setfso=CreateObject("scripting.FileSystemObject")

     If fso.FileExists(pathway) Then

                 Dim srcData,srcDoc,ret

                 set srcData =CreateObject("Excel.Application")

                 srcData.Visible = False

                 set srcDoc =srcData.Workbooks.Open(pathway)

                 srcDoc.Worksheets(sheetname).Activate

                 ret =srcDoc.Worksheets(sheetname).Cells(x,y).value

                 srcData.Workbooks.Close

                 srcData.Quit

     Else

                 ret = "file notfound"

     End If

    

     Set fso = Nothing

     Set srcData = Nothing

     If Err Then

                 readExcelCell = Err.Description

     Else

                 readExcelCell = ret

     End If

End Function

 


 

写入Excel单元格函数

 

PublicFunction writeExcelCell(content,pathway,sheetname,x,y)

     On Error Resume Next

     Setfso=CreateObject("scripting.FileSystemObject")

     If fso.FileExists(pathway) Then

                 Dim srcData,srcDoc,ret

                 set srcData =CreateObject("Excel.Application")

                 srcData.Visible = False

                 set srcDoc =srcData.Workbooks.Open(pathway)

                 srcDoc.Worksheets(sheetname).Activate

                 srcDoc.Worksheets(sheetname).Cells(x,y).value = content

                 srcDoc.Save

                 srcData.Workbooks.Close

                 srcData.Quit

                 ret = "success"

     Else

                 ret = "File notfound"

     End If

    

     Set fso = Nothing

     Set srcData = Nothing

                

     If Err Then

                 writeExcelCell =Err.Description

     Else

                 writeExcelCell = ret

     End If

End Function


注:

这三个函数都是对Excel的基本操作,我们只是给还没有掌握的测试界的朋友一个基本思路

其实在真正自动化测试过程中可能需要更多的对于Excel的操作,各位朋友都可以参照这样的思路实现自己的操作
鄙人微博:http://weibo.com/quicktest,愿与大家一起讨论

使用VBS实现word、excel批量转换为pdf 由于最近我家tiger有这方面的需求,且她单位用的是office 2007的32位系统,网上python转换的方法无法奏效,所以使用通用性还可以的VBS来实现,首先要安装SaveAsPDFandXPS.exe,有这个文件支撑,office才能实现转成pdf,wps是不需要的。然后新建一个txt的文本文件,然后把代码复制进去,保存后把文件的后缀改成 .vbs即可。代码在32位系统已测试过,放心使用。 阅读详情

相关推荐

Allan方差读图分析IMU误差指标

Allan方差标定IMU参数实测分析

weixin_44927558的博客 3566

VBS 两种方式读取Excel

1:ADODB方式 Function GetConfig(sConfigFile, sSheet,sCaseId) ' Call PrintLog(Now, LOG_STATUS_INFO, "GetConfig(" &amp; sConfigFile &amp; "," &amp; sSheet &amp; ")") Dim oDictionary, oConnection Se...

4065

CCS20实战入门:第一个工程搭建示例

通过实际操作演示如何在ccs20中创建并配置首个开发项目,涵盖环境设置与基础调试步骤,帮助新手快速上手ccs20集成开发环境,提升嵌入式开发效率。

weixin_31185473的博客 884

VBS读取Excel

Function FastReadExcel(byval myXlsFile,byval mySheet,byref arrData( ), byref Rscount,byval blnHeader )          Erase arrData         Dim  i, j          Dim objExcel, objRS          Dim strHeader, str...

Aries鹏的专栏 3086

Abaqus 2023 保姆级安装避坑指南:从环境变量到许可证配置,一次搞定

本文提供Abaqus 2023的详细安装指南,涵盖环境变量设置、许可证配置等关键步骤,帮助用户避开常见安装陷阱。通过系统环境检查、目录结构规划、许可证服务器安装及Java环境配置等实用技巧,确保顺利完成安装并优化软件性能。

weixin_42524276的博客 425

戴尔PowerEdge服务器R450 RAID配置步骤

戴尔PowerEdge服务器R450 RAID配置步骤

且听风呤tmj的博客 6910

VBS 读取excel内容并写入到文本文件

使用VBS读取excel内容并写入到文本中

xinke453的专栏 1万+

开源浏览器插件开发实战:从零搭建多平台内容分发工具

浏览器扩展(Browser Extension)是运行在浏览器上层、通过标准Web技术增强浏览器能力的轻量级程序,其核心价值在于对页面内容的读取、操作与跨应用信息流转。在内容创作与分发场景中,创作者频繁需要在公众号、知乎、优快云、头条等平台间搬运同一篇文章,而传统SaaS分发工具往往受限于免费额度、授权托管和平台适配滞后等问题。基于Manifest V3规范,开发者可以构建一款100%开源、永久免费的浏览器插件,利用content script完成从源文章页提取标题、正文与图片,通过消息通信机制将结构化数

weixin_29882269的博客 293

QTP对Excel的操作

<br />QTP对Excel的操作(一)<br /> <br />'*************************************************************'<br />'函数/过程名称:DoExcel()<br />'函数/过程的目的:操作Excel(读写)<br />'假设:无<br />'影响:<br />'输入:无<br />'返回值:无<br />'创建者:lee<br />'创建时间:2010/12/13<br />'修改者:<br />'修改原因:<br /

998

基于STM32+华为云设计的智慧农业灌溉系统(2023升级版)(158)

本项目设计一种基于STM32的智慧农业监测系统。该系统能够检测空气温度、湿度、光强度和土壤湿度等关键指标,并自动调节浇水量,实现作物生长环境的精细化管理。同时,本项目还支持本地LCD屏幕数据显示和通过ESP8266上传数据到华为云物联网平台,同时搭建流媒体服务器实现摄像头远程监控。最重要的是,本项目将利用Qt开发Android手机APP,使用户可以远程查看监测情况,了解农作物生成情况。

1万+

常用元器件使用方法3:电平转换芯片74LVC1T45的使用方法

介绍: 74LVC1T45是一个单位双向可控电平转换芯片。   芯片特性: 1、宽供给电压范围:1.65V到5.5V; 2、3.3V时,可输出24mA电流; 3、最大16uA电能损耗; 4、高噪音抑制;   型号:   引脚: VCC(A) 1 A端和DIR电源 GND 2 地 A 3 数据输入/输出 B 4 ...

snmplink的博客 1万+

QTP如何获取本地Excel文件的行和列

<br />代码如下:<br />Set  excel=CreateObject("Excel.Application")<br />set openexcel=excel.Workbooks.Open("这里输入EXCEL路径")<br />rowcount =openexcel.ActiveSheet.UsedRange.Rows.Count<br />Columnscount =openexcel.ActiveSheet.UsedRange.Columns.count<br />print " 行数:

meiyuan1304的专栏 2406

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

用VBS操作Excel常见方法总结!

系列文章分类 C#专栏、VBS专栏、JAVA 专栏、IDEA 专栏 用VBS操作Excel常见方法总结前言一、实现代码二、实现代码三、实现代码四、实现VBS操作Excel总结 前言 vbs详情> VBS是基于Visual Basic的脚本语言。VBS的全称是:Microsoft Visual Basic Script Edition。(微软公司可视化BASIC脚本版)。 其语言类似Visual Basic(VB) 脚本语言的特点为: 简单易学 解释性语言 集成成熟技术 VBScript是

王大师企业官方博客 1万+

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

python调用vbs_VBS调用Windows API函数的代码

那天无意中搜索到一篇《WinCC VBS利用EXCEL调用Windows API函数》的文章,不知道WinCC是什么,Google了一下好像跟西门子自动化有关。WinCC是什么并不重要,重要的是这篇文章提供了VBS调用Windows API的一种思路——EXCEL VBA,一种传说比VB还要VB的语言。但是那篇文章中的例子都是使用已经写好的EXCEL VBA程序,即首先得存在一个EXCEL文件。我...

weixin_39767645的博客 645

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

VBS 从Excel中获取数据,批量替换word中的文字

简介 比如我有一个需求,需要把一份 word 中的英文国家名全部替换成中文国家名,excel中的第一列是英文国家名,第二列是中文国家名。人工完成的话,费时费力,使用我编写的程序,双击一下,瞬间完成。 效果图 处理前 处理后 源码 Const wdReplaceAll = 2 Dim arrSheet() Dim nUsedRows, nUsedCols Dim wordPath, exelPa...

leyou2018 的博客 1万+

【ChatGPT的小妙招】结合Excel的vbs开发者工具达成对Excel文件的处理

摘要:利用excel的vbs工具间接让ChatGPT帮忙处理文件

LenBits的博客 925

VBS操作Excel的一点问题总结

最近在使用vbs操作excel时遇到了一些问题,目前我所能看到的书和资料上都没有介绍过相关的东西,所以做一个小小的总结。1.先看看这段代码:For i = 1 To excel.Sheets.Countexcel.Sheets(i).DeleteNext 代码似乎看起来没问题,“依次删除Excel中全部Sheet表”,但是执行结果却是错误报错:下标越界!现在分析原因有:a. EXCE...

baijie5865的博客 655

WINCC用VBS操作EXCEL

【代码】WINCC用VBS操作EXCEL。

weixin_46439946的博客 2271

用VBS控制鼠标,在Excel2010、2013,64位中

原作者文章地址:http://demon.tw/programming/vbs-control-mouse.html 感谢原作者的攻略。才使我学会用VBS控制鼠标。 但是问题接踵而至,Excel2003和Excel2007环境下,按文章做全然没问题。 但是Excel2010和Excel2013无法使用。会弹出窗体: 错误:无法执行“SetCursorPos”宏。可能是由于...

aoe41606的博客 723

vbs编写读写excel数据

要操作多个 Excel 文件,可以使用循环语句遍历文件列表,并在每次迭代中打开一个文件进行读取和处理。要将处理后的数据输出到一个新的 Excel 文件中,可以使用。对象来创建和写入新文件。vbs编写读写excel文件。

4033

VBS调用Windows API函数

Demon's Blog 忘记了,喜欢一个人的感觉 Demon's Blog»程序设计»VBS调用Windows API函数 « 用VBS修改Windows用户密码 在VB中创建和使用VBS的内置WScript对象? » VBS调用Windows API函数 标签:Excel,Excel.Application,VBS,V...

weixin_30889885的博客 1387

vbS访问mysql语句_关于VBS连接MySQL与连接Excel

目标:连接MySQL查找数据放入新建Excel表实现过程:1.连接数据库首先要去MySQL官网下载个ODBC数据源。安装之后,即可在控制面板-管理工具-ODBC数据源-添加,中看到MySQL驱动名称:'连接数据库StrCnn="Provider=MSDASQL.1;Persist Security Info=True;Extended Properties='Driver=MySQL ODBC 5...

weixin_33502400的博客 316

java调用cmd关闭excel_java调用vbs,实现打开关闭excel操作小示例

文章本身没有多少技术含量。我本人一直不熟悉windows系统/脚本的东西。做WebDynPro开发时,碰到一个问题。里面的 office control不能加载POI生成的Excel。问了下SAP的人,他们说:我们不支持开源工具生成的excel。 我们只能绕路了。用 POI生成Excel,用Excel打开一下,保存一下,然后关闭,什么也做修改,office 控件就能加载这个excel了。在wind...

weixin_30464195的博客 551

VBS遍历Excel工作表的方法

这篇文章主要介绍了VBS遍历Excel工作表的实现代码,需要的朋友可以参考下 核心代码 '****************************************** '拖拽文件,获取文件路径 '****************************************** If wscript.Arguments.count=0 then msgbox "拖拽文件到本图标",0,"提示" End if for a=0 to wscript.Argume

Free雅轩的博客 1854

请教VBS不能打开excel

用VBA操作可以打开D:\自动运行\打开.xlsm。但是双击VBS不能打开D:\自动运行\打开.xlsm,没有反应,也没有报错。

2301_81468091的博客 697
上一篇: QuickTest底层VB脚本驱动
下一篇: E测中国翻译团队成立,首战告捷!
Wally_Yu
博客等级 码龄19年 71粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值