Vbs判断两个Excel文件的内容--将两个Excel文件相同内容写入新建的Excel文件内

Posted 高文龙

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vbs判断两个Excel文件的内容--将两个Excel文件相同内容写入新建的Excel文件内相关的知识,希望对你有一定的参考价值。

Vbs判断两个Excel文件的内容--将两个Excel文件相同内容写入新建的Excel文件内

公司人数比较多,使用的是domino系统,由于domino管理邮件组是非常灵活的,邮件组内的人员可以随便手动添加,所以很容易造成误差,如果出错了,用户给邮件组发送邮件会提示,某个用户不在domino目下,加上近期公司一直调整邮件组织架构,出现这样的很多问题,所以就想起通过vbs脚本来判断最新的文档和系统导出的文档的一致性,所以就写了一个vbs脚本来判断两个Excel文件内容,然后将两个Excel文件相同内容找出并且同时生成一个新的excel文件将相同的内容写入进去(前提需要写入的内容格式以SAP.EXCEL这个表的格式完全一样,需要组织信息),写完及使用后觉得不错,在此分享给有需要的朋友,具体见下:

自定义两个Excel文件,然后在两个文件内分别添加相同及不相同的内容,方便测试然后运行脚本,运行成功后,会在当前目录生成一个文件,该文件内的内容为:文件1和文件2内容的相同内容,得到该结果,意味着脚本运行成功。

脚本定义文件名称:

脚本内容

vbs内容:

currentFolder=CreateObject("wscript.shell").currentDirectory&"\\"
filename1=currentFolder&"Domino.xlsx"
filename2=currentFolder&"SAP.xlsx"
filename3=currentFolder&"执行后生成的文件.xlsx"
Set dic=CreateObject("scripting.dictionary")
Set excelObject=CreateObject("Excel.Application")
Set workbook1=excelObject.Workbooks.Open(filename1)
Set workbook2=excelObject.Workbooks.Open(filename2)
Set workbook3=excelObject.Workbooks.Add
Set workbook1_sheet=workbook1.Sheets("Sheet1")
Set workbook2_sheet=workbook2.Sheets("Sheet1")
Set workbook3_sheet=workbook3.Sheets("Sheet1")
workbook1_rowcount=workbook1_sheet.usedrange.rows.count
For i=0 To workbook1_rowcount
     content=workbook1_sheet.range("A1").offset(i,0).value
 If Not dic.Exists(content) Then
    dic.Add content,content
 End If
Next
workbook2_rowcount=workbook2_sheet.usedrange.rows.count
workbook2_columncount=workbook2_sheet.usedrange.columns.count
sheet3_row=0
For i=0 To workbook2_rowcount
     content=workbook2_sheet.range("A1").offset(i,0).value
 If dic.Exists(content) Then   
    For j=0 To workbook2_columncount
        workbook3_sheet.range("A1").offset(sheet3_row,j).value=workbook2_sheet.range("A1").offset(i,j).value
      
    Next
        sheet3_row=sheet3_row+1
 End If
Next
workbook3.SaveAs(filename3)
workbook3.Close
workbook2.Close
workbook1.Close
Set workbook3=Nothing
Set workbook2=Nothing
Set workbook1=Nothing
Set excelObject=Nothing
Set dic=nothing
MsgBox "finish"

1. 准备好两个对比文件

文件命令建议使用以下名称:1和2

1.Excel1文件内容:

2.Excel2文件内容:

2. 然后将脚本放入文件同一目录,双击执行

3. 双击执行,提示Finish,然后会在当前目录生成命名为:执行后的生成文件

4. 打开生成的文件,查看结果:

以上是关于Vbs判断两个Excel文件的内容--将两个Excel文件相同内容写入新建的Excel文件内的主要内容,如果未能解决你的问题,请参考以下文章

vbs读取指定的文本内容

excel如何快速判断一个内容是不是在另一列复杂内容中?

使用 vbs 将 .xlsx 保存为制表符分隔的 .txt 文件

VBS,怎样根据内容来查找excel中对应的位置?

excel判断表数据是不是存在另一个表中

vbs操作excel的问题,请大家帮忙啊