VBA比较两个Excel数据的异同
2020-05-02 18:31
1871 查看
代码背景:
- 由于Excel本身无法简单的比较两个Excel数据的异同,所以用VBA编写代码的方式来实现。
- 这里的比较条件是:数据行为单位,假设对应Sheet中没有重复数据,对应数据行的所有列的数据都相等,即为此行数据相同。
- 这里的两个Sheet的数据行量级别大约为:50000 * 50000,数据列大约:50,对应Cell中的字符串大约100以内,中英文混合。
- 如何在Excel中调出VBA的编写工具,请参考如下链接: https://jingyan.baidu.com/article/63f236281f17650208ab3d97.html
整体来说,需求非常明确,代码逻辑比较简单。
相关代码:
Sub CompareData() Dim i As Long Dim j As Long Dim fullSheetName As String fullSheetName = "Sheet1" Set fullSheet = Sheets(fullSheetName) Dim fullDataRange As Variant fullDataRange = fullSheet.Range("A1", "AN43921").CurrentRegion.Value Dim fullSheetRowMax As Long fullSheetRowMax = Range("A1", "AN43921").CurrentRegion.Rows.Count Dim partialSheetName As String partialSheetName = "Sheet2" Set partialSheet = Sheets(partialSheetName) Dim partialDataRange As Variant partialDataRange = partialSheet.Range("A1", "AN40000").CurrentRegion.Value Dim partialSheetRowMax As Long partialSheetRowMax = partialSheet.Range("A1", "AN40000").CurrentRegion.Rows.Count Dim columnMax As Integer columnMax = 40 Dim columnMark As Integer columnMark = 42 Dim sameRow As Boolean For i = 1 To fullSheetRowMax For j = 1 To partialSheetRowMax sameRow = True For columnIndex = 1 To columnMax If IsEmpty(fullDataRange(i, columnIndex)) And Not IsEmpty(partialDataRange(j, columnIndex)) Then sameRow = False Exit For End If If IsEmpty(partialDataRange(j, columnIndex)) And Not IsEmpty(fullDataRange(i, columnIndex)) Then sameRow = False Exit For End If If fullDataRange(i, columnIndex) <> partialDataRange(j, columnIndex) Then sameRow = False Exit For End If Next columnIndex If sameRow Then fullSheet.Cells(i, columnMark) = 1 Exit For End If Next j Next i MsgBox "Successfully!" End Sub
相关文章推荐
- Excel比较两个工作表(Sheet)的两组列数据,并返回相应数据
- Excel如何实现两个工作表数据的对比,比较两个Excel表的绿色工具
- 根据ID字段比较两个Access数据库中的数据表中的记录异同
- grep比较两个文件的异同
- php判断比较两个数组中的数据
- 使用VBA从海量Excel文件中模糊获取数据并生成新表(附实例) - (三) VBA模糊查找数据
- Python利用模糊查询两个excel文件数据 导出新表格
- 比较两个byte数组数据是否相同,相同返回 true
- VBA Excel值数据替换
- 两个数据表,比较相同字段;如果存在相同字段,删除原有表数据
- php实现比较两个文件夹异同的方法
- VBA:Excel 中利用 ODBC数据源,以及 Sheet.QueryTables对象 查询数据
- Excel 两个sheet比较差异代码
- 比较两个同名表在数据上的差异(转载)
- Python 比较两个数组的元素的异同方法
- 基于SQL Server中如何比较两个表的各组数据 图解说明
- PHP比较两个文件夹异同的方法
- 使用VBA从海量Excel文件中模糊获取数据并生成新表(附实例) - (四) 结合病人病例,批量汇总实例
- vba操作两个excel(在一个EXCEL中引用另一个EXCEL的值)
- 根据某一字段跨服务器比较两个表数据