我已经能够使用VBA成功地将数据复制到最后使用的行。我试图做同样的事情,但是将数据从A1复制到LastColumn2。这是到目前为止我编写的代码:
Sheets("Results").Select
LastColumn = Cells(1, Columns.Count).End(xlToLeft).Column
Range("A1:" & LastColumn & "2").Select
Selection.Copy
调试器突出显示第三行。这只是代码的一部分-所有变量的尺寸均已正确设定。
谢谢!
问题是您通过的范围是错误的,因为它正在浪费时间,例如:
Range("A1:C2").Select
并且您正在通过:
Range("A1:32").Select
所以您可以做的是:
Range(cells(1,1),cells(2,lastcolumn)).Select
Cell(1,1)= A1,因为它是行号1列号1
如上所述,如果您愿意的话,更好
Range(cells(1,1),cells(lastcolumn,2)).copy
希望有帮助
由于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
我想将数据从第一行复制到最后一行,并且使用lastrow和lastcolumn是未知的。