-1

伙计们,我正在寻找一个简单的 Excel 宏,当列不同时,它可以将一行从一个工作表复制到另一个工作表,但是在新工作表中没有放置在它们所在的同一行中,否则它将被连续添加。 ..

表 1:

ABC
一西班牙 1000
二 日本 2000
三 EEUU 3000

表2:

ABC
一意大利 1000
二 日本 2000
三 EEUU 4000

表 3(最终):

ABC
一意大利 1000
三 EEUU 4000

我会将工作表“Sheet1”与工作表“Sheet2”进行比较,如果您在任何列中发现任何差异,请将工作表“Sheet2”的整行复制到工作表“Sheet3”。

任何提示将非常有义务。对不起我的英语,但我来自阿根廷。

谢谢, 伊格纳西奥 G

编辑:实际上,我正在使用此代码:

Public Sub ReconReport()
Dim rngCell As Range

For Each rngCell In Worksheets("Sheet1").UsedRange
    If Not rngCell = Worksheets("Sheet2").Cells(rngCell.Row, rngCell.Column) Then _
        Let Worksheets("Sheet3").Cells(rngCell.Row, rngCell.Column) = rngCell
    Next
End Sub

但它只是复制不同的单元格,而我需要的是复制整行...

4

1 回答 1

0

慢回复:

Sub ReconReport()
    'Set Worksheets to Variables
    Dim sheetOne, sheetTwo, sheetThree As Worksheet
    Set sheetOne = Worksheets("Sheet1")
    Set sheetTwo = Worksheets("Sheet2")
    Set sheetThree = Worksheets("Sheet3")

    'Find Used Rows and Columns
    Dim usedRows, usedCols As Integer
    usedRows = sheetOne.UsedRange.Rows.Count
    usedCols = sheetOne.UsedRange.Columns.Count

    Dim row, col, copyRow, copyCol As Integer
    copyRow = 1 'Row on sheet three
    For row = 1 To usedRows
        For col = 1 To usedCols
            If Trim(sheetOne.Cells(row, col).Value) <> Trim(sheetTwo.Cells(row, col).Value) Then

                'Copy All Columns from that row (on Sheet2) to Sheet3
                For copyCol = 1 To usedCols
                    sheetThree.Cells(copyRow, copyCol).Value = sheetTwo.Cells(row, copyCol).Value
                Next copyCol

                'Increment the sheet3 row so next info starts on new line
                copyRow = copyRow + 1 

                'Exit column search loop so only one row added if two columns have differences in the same row 
                Exit For

            End If
        Next col
    Next row
End Sub
于 2013-01-04T16:13:55.120 回答