伙计我正在寻找一个简单的Excel宏,它可以在列不同时将一行从一张纸复制到另一张,但在新纸张中不会放在它们所在的同一行,否则它将是连续补充......
Sheet 1中:
A B C
一个西班牙1000
两个日本2000年
三个EEUU 3000
Sheet 2中:
A B C
一意大利1000
两个日本2000年
三个EEUU 4000
表Sheet 3(最终):
A B C
一意大利1000
三个EEUU 4000
我会将工作表“Sheet1”与工作表“Sheet2”进行比较,如果您发现任何列有任何差异,请将工作表“Sheet2”的整行复制到工作表“Sheet3”。
任何提示都是非常有必要的。 索里为我的英语,但我来自阿根廷。
谢谢,Ignacio 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
但它只是复制不同的单元格,我需要的是复制整行......
答案 0 :(得分: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