我成功地使用VBA将数据复制到最后使用的行。我试图做同样的事情,但将数据从A1复制到LastColumn2。这是我到目前为止编写的代码:
Sheets("Results").Select
LastColumn = Cells(1, Columns.Count).End(xlToLeft).Column
Range("A1:" & LastColumn & "2").Select
Selection.Copy
调试器突出显示第三行。这只是代码的一部分 - 所有变量都已正确标注。
谢谢!
答案 0 :(得分:3)
您收到错误,因为LastColumn
是数字。你想要它的等效字符串,即列名。 For Further Reading
避免使用.Select
并完全限定您的对象。 INTERESTING READ
这是你在尝试的吗?
Sub Sample()
Dim ws As Worksheet
Dim rng As Range
Dim LastCol As Long
Dim LastColumn As String
Set ws = ThisWorkbook.Sheets("Results")
With ws
LastCol = .Cells(1, .Columns.Count).End(xlToLeft).Column
'~~> Return column name from number
LastColumn = Split(.Cells(, LastCol).Address, "$")(1)
Set rng = .Range("A1:" & LastColumn & "2")
Debug.Print rng.Address
rng.Copy
End With
End Sub
答案 1 :(得分:2)
问题在于你传递的范围是错误的,因为它正在消除类似的东西:
Range("A1:C2").Select
你正在路过:
Range("A1:32").Select
所以你可以做的是:
Range(cells(1,1),cells(2,lastcolumn)).Select
Cell(1,1)= A1 beacuse,它是第1行第1列
如上所述,如果你只是
,那就更好了Range(cells(1,1),cells(lastcolumn,2)).copy
希望有所帮助