【问题标题】:Compare and Add data from one worksheet to another in VBA Excel在 VBA Excel 中比较并将数据从一个工作表添加到另一个工作表
【发布时间】:2015-04-12 16:49:18
【问题描述】:

在将现有条目相互比较后,如何将一个工作表中的数据行添加到另一个工作表? 我试过这样做,但唯一的问题是有重复的条目被添加到其中。

For Each Cell1 In Worksheets(1).Range("A1", Worksheets(1).Range("A1").End(xlDown))
        
        For Each Cell3 In Worksheets(3).Range("A1", Worksheets(3).Range("A1").End(xlDown))
    
            If Not Cell1 = Cell3 Then
                Dim LastRow3 As Long
                LastRow3 = Worksheets(3).Range("A1").SpecialCells(xlCellTypeLastCell).Row + 1
                Worksheets(3).Range("A1:C1").Rows(LastRow3).Value = Worksheets(1).Range("A1:C1").Rows(Cell1.Row).Value
                
            Else
                Exit For
            End If
    
        Next Cell3

Next Cell1

【问题讨论】:

    标签: excel vba duplicates worksheet multiple-entries


    【解决方案1】:

    使用 Find() 比使用嵌套循环更容易管理:

    Sub Test()
    
        Dim c As Range, f As Range
        Dim ws1, ws3
    
        Set ws1 = Worksheets(1)
        Set ws3 = Worksheets(3)
    
        For Each c In ws1.Range(ws1.Range("A1"), ws1.Cells(Rows.Count, 1).End(xlUp)).Cells
    
            Set f = ws3.Range(ws3.Range("A1"), _
                               ws3.Cells(Rows.Count, 1).End(xlUp)).Find( _
                                          What:=c.Value, lookat:=xlWhole)
    
            If f Is Nothing Then
                ws3.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Resize(1, 3).Value = _
                                                            c.Resize(1, 3).Value
            End If
    
        Next c
    
    End Sub
    

    【讨论】:

    • 是否有任何网站或书籍可供我参考以使用 VBA Excel?我才刚刚开始。
    • 我喜欢 John Walkenbach 的“Power Progamming”书籍
    猜你喜欢
    • 1970-01-01
    • 2018-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-26
    • 2019-08-06
    相关资源
    最近更新 更多