我需要将A2中的列复制到未知行长度到新工作簿。 另一个工作簿有其他标题,我需要没有标题的列A到列C,另一个标题和列J需要到列A,依此类推。
我试过这段代码
Sub SO()
Dim lastRow As Long
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Set ws1 = Workbooks("Workbook1.xlsm").Worksheets("Orderheader")
Set ws2 = Workbooks("Workbook2.xlsm").Worksheets("Sheet1")
lastRow = ws1.Cells(ws1.Rows.Count, "A").End(xlUp).Row
ws1.Range(Cells(2, 1), Cells(lastRow, 1)).Copy
ws2.Range("A2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False
End Sub
它运作良好一次,现在它不起作用。它似乎也不适用于多列,我真的需要它。
现在我收到错误"方法'范围'对象' _Worksheet'失败"
我做错了什么?
答案 0 :(得分:0)
在您发布的代码中,您应该使用工作表名称限定所有单元格,以防它在您运行宏时处于非活动状态。您需要进一步解释其余的请求,因为它不清楚(" J列需要进入A栏,依此类推")。
Sub SO()
Dim lastRow As Long
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Set ws1 = Workbooks("Workbook1.xlsm").Worksheets("Orderheader")
Set ws2 = Workbooks("Workbook2.xlsm").Worksheets("Sheet1")
With ws1
lastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
.Range(.Cells(2, 1), .Cells(lastRow, 1)).Copy
ws2.Range("A2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
End With
End Sub