-1

みんな列が異なるときにあるシートから別のシートに行をコピーできる単純なExcelマクロを探していますが、新しいシートでは同じ行に配置されず、そうでなければ連続して追加されます。 ..

シート 1:

ABC
1 スペイン 1000
2 日本 2000
3 EEUU 3000

シート 2:

ABC
1 イタリア 1000
2 日本 2000
3 EEUU 4000

Sheet3(最終):

ABC
One イタリア 1000
Three 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 に答える