比较两个工作簿中的行列表,并使用列表1中缺失的行更新列表2 - Excel VBA
创始人
2024-12-14 05:00:23
0次

以下是一个示例代码,演示如何比较两个工作簿中的行列表,并使用列表1中缺失的行更新列表2。

Sub UpdateRows()
    Dim wb1 As Workbook, wb2 As Workbook
    Dim ws1 As Worksheet, ws2 As Worksheet
    Dim lastRow1 As Long, lastRow2 As Long
    Dim rng1 As Range, rng2 As Range, cell As Range
    Dim rowToCopy As Range, copyRange As Range
    
    '打开工作簿1和工作簿2
    Set wb1 = Workbooks.Open("路径\工作簿1.xlsx")
    Set wb2 = Workbooks.Open("路径\工作簿2.xlsx")
    
    '设置工作表1和工作表2
    Set ws1 = wb1.Worksheets("工作表1")
    Set ws2 = wb2.Worksheets("工作表2")
    
    '获取工作表1和工作表2的最后一行
    lastRow1 = ws1.Cells(ws1.Rows.Count, "A").End(xlUp).Row
    lastRow2 = ws2.Cells(ws2.Rows.Count, "A").End(xlUp).Row
    
    '设置工作表1和工作表2的范围
    Set rng1 = ws1.Range("A2:A" & lastRow1)
    Set rng2 = ws2.Range("A2:A" & lastRow2)
    
    '循环遍历工作表1的每一行
    For Each cell In rng1
        '检查工作表2是否包含当前行
        If Application.WorksheetFunction.CountIf(rng2, cell.Value) = 0 Then
            '如果工作表2中不包含当前行,则将行添加到更新范围
            If rowToCopy Is Nothing Then
                Set rowToCopy = cell.EntireRow
            Else
                Set rowToCopy = Union(rowToCopy, cell.EntireRow)
            End If
        End If
    Next cell
    
    '复制更新范围到工作表2
    If Not rowToCopy Is Nothing Then
        rowToCopy.Copy ws2.Cells(lastRow2 + 1, "A")
    End If
    
    '关闭工作簿1和工作簿2
    wb1.Close SaveChanges:=False
    wb2.Close SaveChanges:=True
End Sub

请将代码中的“路径\工作簿1.xlsx”和“路径\工作簿2.xlsx”替换为实际的工作簿路径和名称。此代码假设工作表1和工作表2在工作簿中的名称分别为“工作表1”和“工作表2”。

此代码将遍历工作表1的每一行,并检查工作表2是否包含相同的行。如果工作表2中不包含某一行,则将该行添加到更新范围。最后,将更新范围中的行复制到工作表2的末尾。

请注意,此代码假设行列表位于工作表的第一列,并且行列表中不包含重复项。如果行列表位于不同的列或包含重复项,需要稍作修改代码。

相关内容

热门资讯

前端-session、jwt 目录:   (1)session (2&#x...
linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
nodejs:本地安装nvm实... 一、背景-使用不同版本node的原因 vue3+ts、nuxt3版本,node...
JAVA集合知识整理 Java集合知识整理 HashMap相关 HashMap的底层数据结构:jdk1.8之...
无刷直流电机介绍及单片机控制实... 无刷直流电机介绍及单片机控制实例前言基本概念优势与劣势使用寿命基本结构使用单片机控制实例电子调速器&...
fwdiary(2) dp2 1.传纸条  AcWing 275. 传纸条 - AcWing 走两条路,走一条最大的...
常用的DOS命令 常用的DOS命令 DOS(Disk Operating System,磁...
<C++> 类和对象(下) 1.const成员函数将const修饰的“成员函数”称之为const成员函数,cons...