所以我丢失了我所有的 VBA 笔记,并且在这里重做一些逻辑时遇到问题,所以如果这看起来很基本,我深表歉意。我试图找到设置顶部并找到列中最后一个填充的单元格,并将它们都设置在我的范围内,以便能够将其复制并粘贴到日志中。当我进入这个MYRANGE
部分时,我得到:
错误 1004
我尝试使用更基本的选择来实现我想要做的事情,但原始数据永远不会是相同的大小,所以我想回到这个问题来尝试看看我是否可以获得帮助。
Sub CopyRows()
Dim sht As Worksheet
Dim LastRow As Long
Dim LastColumn As Long
Dim MYRANGE As Range
Dim Top, Bottom, Left, Right As Long
Set sht = Worksheets("Data")
sht.Activate
Set Top = Range("B2")
LastRow = Cells(Rows.Count, "B").End(xlUp).Select
Set MYRANGE = Range("Top", "LastRow").Select.Copy
End Sub
正如我提到的,我试图将我的范围设置为“顶部”和“底部”或“最后一行”,这样我就不必担心数据的实际大小并将其复制并粘贴到另一个工作表。
设置范围时,您不使用.Select
或.Copy
在另一个范围内使用可变范围时,您不使用 ""
并且不要使用.Activate
或.Select
Sub CopyRows()
Dim sht As Worksheet
Dim LastRow As Range
Dim LastColumn As Long
Dim MYRANGE As Range
Dim Top As Range, Bottom As Range, Left As Range, Right As Range
Set sht = Worksheets("Data")
Set Top = sht.Range("B2")
Set LastRow = sht.Cells(Rows.Count, "B").End(xlUp)
Set MYRANGE = sht.Range(Top, LastRow)
'Now you can do something with MYRANGE like MYRANGE.Copy
End Sub
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句