Excelmacros不会复制行的内容

我试图创build一个比较2列的macros,每个列来自不同的文件,并将每个匹配与第三个文件一起从其中一个文件的一些额外的单元格。

另外,前两个文件有一些编辑,所以他们的细胞与实际的数据开始在他们各自的列的第四和第二行,所以我使用了2个不同的variables,所以我的循环将开始在这些单元格。

事情是,即使我的macros运行没有错误,它不会将数据复制到第三个文件。

我有以下代码:

Sub Compare() Dim w1 As Worksheet, w2 As Worksheet, w3 As Worksheet Dim range1 As Range, range2 As Range Set w1 = Workbooks("Worksheet_Name1").Worksheets("Sheet1") Set w2 = Workbooks("Worksheet_Name2").Worksheets("Sheet2") Set w3 = Workbooks("Worksheet_Name3").Worksheets("Sheet3") Set range1 = w1.Range("E4", w1.Range("E" & Rows.Count).End(xlUp)) Set range2 = w2.Range("A2", w2.Range("A" & Rows.Count).End(xlUp)) For Each c In range2 rangeVar2 = c If rangeVar2 > 3 Then For Each n In range1 rangeVar1 = n If rangeVar > 2 Then If w1.Cells(n, "E").Value = w2.Cells(c, "A").Value Then w3.Cells(c, "A").Value = w1.Cells(c, "E").Value w3.Cells(c, "B").Value = w2.Cells(c, "A").Value End If End If Next n End If Next c End Sub 

好吧,我为你重新写了这个,并改变了一些东西。 这仍然可以修改一下,但这至less应该现在工作

rangeVar1rangeVar2是完全多余的,也阻止你的代码运行(我认为)。 不需要这些。

 Sub ReWrite() Dim w1 As Worksheet, w2 As Worksheet, w3 As Worksheet Set w1 = Workbooks("Worksheet_Name1").Worksheets("Sheet1") Set w2 = Workbooks("Worksheet_Name2").Worksheets("Sheet2") Set w3 = Workbooks("Worksheet_Name3").Worksheets("Sheet3") Dim lastrow1 As Long, lastrow2 As Long, i As Long, j As Long lastrow1 = w1.Cells(w1.Rows.Count, "E").End(xlUp).Row lastrow2 = w2.Cells(w2.Rows.Count, "A").End(xlUp).Row For i = 4 To lastrow1 For j = 2 To lastrow2 If w1.Range("E" & i).Value = w2.Range("A" & j).Value Then w3.Range("A" & j).Value = w1.Range("E" & i).Value w3.Range("B" & j).Value = w2.Range("A" & j).Value End If Next j Next i End Sub