使用 VBA 比较 Excel 中的 3 列

肖恩·雷耶斯

我想使用 VBA 比较 Excel 中的 2 到 1 列..

我已经使用此代码实现了 2 到 2 列

Sub LIST1_LIST2()
    Dim list1 As Range
    Dim LIST2 As Range
    Set list1 = Range("B3:C181")
    Set LIST2 = Range("G3:H729")

    For Each row1 In list1.Rows
        For Each row2 In LIST2.Rows
          If (row1.Cells(1) = row2.Cells(1) And row1.Cells(2) = row2.Cells(2)) Then
              row1.Cells(1).Offset(0, 2) = row1.Cells(1)
              row1.Cells(2).Offset(0, 2) = row1.Cells(2)
              Exit For
          End If
        Next row2

    Next row1

End Sub

但是现在我需要一些像下图一样工作的 VBA 脚本 在此处输入图片说明

0立方米

使用一个简单的 Do until 循环:

Option Explicit
Public Sub Example()
    Dim B As Range, _
        C As Range, _
        D As Range, _
        F As Range, _
        G As Range

    Dim i%, x% ' Dim as long

    Set B = Columns(2)
    Set C = Columns(3)
    Set D = Columns(4)
    Set F = Columns(6)
    Set G = Columns(7)

    i = 2
    x = 2

    Do Until IsEmpty(B.Cells(i))

        Debug.Print B.Cells(i).Value & ", " & _
                    C.Cells(i).Value ' Print on Immed Win

        Do Until IsEmpty(F.Cells(x))
            DoEvents ' For testing

            If F.Cells(x).Value = B.Cells(i).Value & ", " & _
                                  C.Cells(i).Value Then

               Debug.Print F.Cells(i).Value = B.Cells(i).Value & ", " & _
                           C.Cells(i).Value ' Print on Immed Win

                G.Cells(x) = D.Cells(i)
                x = 2 ' Reset Loop
                Exit Do
            End If

            x = x + 1
        Loop

        i = i + 1
    Loop
End Sub

其他信息

DoEvents对于简单的事情最有用,比如允许用户在进程开始后取消它,例如搜索文件。对于长时间运行的进程,通过使用 Timer 或将任务委托给 ActiveX EXE 组件来更好地完成处理器。在后一种情况下,任务可以继续完全独立于您的应用程序,并且操作系统采用多任务处理的情况和时间切片。



Debug.Print Immediate Window用于调试和评估表达式、执行语句、打印变量值等。它允许您在调试期间输入要由开发语言计算或执行的表达式。要显示“立即”窗口,请打开一个项目进行编辑,然后从“调试”菜单中选择“Windows”并选择“立即”,或按 CTRL+ALT+I。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Excel 2010中,使用宏和VBA比较列中的数据并突出显示值(如果不同)

来自分类Dev

如何比较Excel(VBA)中的行并插入其他列?

来自分类Dev

Vba比较Excel中的两列并获取相应的值

来自分类Dev

excel中的VBA比较不同情况的列

来自分类Dev

使用vba比较excel中的2个单元格

来自分类Dev

使用VBA在Excel中反堆积列

来自分类Dev

使用Excel VBA复制列中的范围

来自分类Dev

使用VBA For Loop连接Excel中的列

来自分类Dev

VBA - 用于比较两列的 Excel

来自分类Dev

比较多列 VBA EXCEL(嵌套循环)

来自分类Dev

比较Excel中的两列?

来自分类Dev

Excel中的IF / THEN公式以比较列

来自分类Dev

使用VBA在一张Excel工作表中比较4列

来自分类Dev

比较 3 列中的空值,并与 EXCEL SpreadSheets 中具有值的列匹配

来自分类Dev

比较PySpark中的3列

来自分类Dev

使用VBA比较两列的匹配项

来自分类Dev

使用VBA比较Excel中两个单元格的数字格式

来自分类Dev

Excel公式比较两列中的数据,然后使用第三列中的数据

来自分类Dev

使用VBA在Excel中向列输入多个文本

来自分类Dev

在Excel 2013中使用VBA读取隐藏列的问题

来自分类Dev

使用VBA在Excel中查看和隐藏列

来自分类Dev

如何使用VBA在Excel中打印不连续的列?

来自分类Dev

使用vba检查列是否在excel中可见

来自分类Dev

使用变量访问Excel VBA中的3维数组元素

来自分类Dev

Excel VBA:日期比较

来自分类Dev

Excel:如何比较行中的列值

来自分类Dev

如何比较Excel中的两列?

来自分类Dev

如何比较MS Excel中的两列?

来自分类Dev

使用列函数 - Excel VBA