VBA从工作簿中获取值并将其放入另一个工作簿中

我无法从一个工作簿的值到另一个工作簿。

现在它可以正常工作,但正如您在下面的代码中可能会看到的那样,它会在第二个工作簿之后不断打开一个工作簿,直到循环结束。 所以我的问题是:我怎样才能做到这一点,而无需打开工作簿?

码:

For i = 2 To LastRow Set wb2 = Workbooks.Open("...") With Worksheets("...") x = .Cells(i, 2).Value y = .Cells(i, 3).Value End With If variable1 = variable2 Then Set wb = Workbooks.Open("...") With Worksheets("...") .Cells(i, 2).Value = x .Cells(i, 3).Value = y End With End If Next i 

下面的代码给我一个错误:下标在x = wb2.WorkSheets("...").Cells(i, 2).Value范围x = wb2.WorkSheets("...").Cells(i, 2).Value

 Set wb2 = Workbooks.Open("...") Set wb = Workbooks.Open("...") For i = 2 To LastRow x = wb2.WorkSheets("...").Cells(i, 2).Value y = wb2.WorkSheets("...").Cells(i, 3).Value If variable1 = variable2 Then wb.WorkSheets("...").Cells(i, 2).Value = x wb.WorkSheets("...").Cells(i, 3).Value = y End If Next i 

这样如何,首先在循环之外设置wbwb2对象,然后直接在工作簿之间设置值。

 Set wb2 = Workbooks.Open("...") Set wb = Workbooks.Open("...") For i = 2 To LastRow wb.Worksheets("...").Cells(i, 2).Value = wb2.Worksheets("...").Cells(i, 2).Value wb.Worksheets("...").Cells(i, 3).Value = wb2.Worksheets("...").Cells(i, 3).Value Next i