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

简介:

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

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

脚本定义文件名称:

clip_image002

脚本内容

clip_image004

vbs内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
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

clip_image006

1.Excel1文件内容:

clip_image008

2.Excel2文件内容:

clip_image010

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

clip_image012

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

clip_image014

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

image



本文转自 高文龙 51CTO博客,原文链接:http://blog.51cto.com/gaowenlong/1397282,如需转载请自行联系原作者

相关文章
|
6天前
|
Java 数据库 数据安全/隐私保护
Java操作Excel文件导入导出【内含有 jxl.jar 】
Java操作Excel文件导入导出【内含有 jxl.jar 】
20 0
|
1月前
aspose实现word,excel等文件预览
aspose实现word,excel等文件预览
|
7天前
|
API Python
Python库`openpyxl`是一个用于读取和写入Excel 2010 xlsx/xlsm/xltx/xltm文件的库。
【6月更文挑战第19天】`openpyxl`是Python处理xlsx文件的库,支持读写Excel 2010格式。使用`pip install openpyxl`安装。基本操作包括加载文件、读写单元格、操作行和列。例如,加载Excel后,可以读取单元格`A1`的值,或将“Hello, World!”写入`A1`。还可修改单元格内容,如加1后保存到新文件。更多功能,如样式和公式,见官方文档[1]。 [1]: <https://openpyxl.readthedocs.io/en/stable/>
27 1
|
17天前
|
XML Java 测试技术
《手把手教你》系列技巧篇(六十七)-java+ selenium自动化测试 - 读写excel文件 - 中篇(详细教程)
【6月更文挑战第8天】本文介绍了Java中操作Excel的工具,包括POI和JXL。POI支持处理Office 2003及以下的OLE2格式(.xls)和2007以上的OOXML格式(.xlsx)。而JXL只能处理2003版本的Excel文件。文章详细讲解了如何下载和使用JXL库,并给出了一个简单的Java代码示例,展示如何读取2003版Excel文件中的数据。在实际项目中,由于JXL对新版本Excel的支持限制,通常推荐使用POI。
34 5
|
17天前
|
Java 测试技术 Apache
《手把手教你》系列技巧篇(六十八)-java+ selenium自动化测试 - 读写excel文件 - 下篇(详细教程)
【6月更文挑战第9天】本文介绍了如何使用Java处理Excel文件中的不同数据类型,包括日期、数字、布尔值和标签(常规字符串)。文章提供了两个示例,分别使用JXL库和Apache POI库来读取Excel文件。
18 1
|
18天前
|
C#
【C#】C#读写Excel文件
【C#】C#读写Excel文件
20 1
|
19天前
|
Java 测试技术 Apache
《手把手教你》系列技巧篇(六十六)-java+ selenium自动化测试 - 读写excel文件 - 上篇(详细教程)
【6月更文挑战第7天】本文介绍了在Java自动化测试中如何操作Excel数据。文章提到了当测试数据存储在Excel文件时,可以使用Apache的POI库来读写Excel。POI提供了对OLE2(.xls)和OOXML(.xlsx)格式的支持,比JXL库功能更全面。文章还详细讲解了如何下载和添加POI库到项目中,以及准备测试用的Excel文件。最后,给出了一个简单的Java代码示例,演示如何读取Excel文件的内容。
15 1
|
20天前
|
前端开发
react框架对Excel文件进行上传和导出
react框架对Excel文件进行上传和导出
|
27天前
|
Java Apache
Java将word、excel文件转成pdf文件
【5月更文挑战第26天】Java将word、excel文件转成pdf文件
142 1
|
12天前
|
Java Maven
Java 怎样从 excel 中读取文件、写入文件
Java 怎样从 excel 中读取文件、写入文件
17 0