Excel VBA复制范围到最后一行(&A);粘贴在新页上,单元格A19后的第一个空行
我试图复制范围A6:L,从工作表“步骤1”向下复制到最后一行。 然后粘贴到“供应商副本”页上,但粘贴在A19后的第一个空行上 这是我所拥有的,除了粘贴在正确的位置之外,它什么都可以做。它从A1开始粘贴,这是一个空白单元格。然而,即使我用数字1填充从1到19的所有行,它仍然会粘贴在“Vendor_Copy”页上的A1中 谢谢你的帮助Excel VBA复制范围到最后一行(&A);粘贴在新页上,单元格A19后的第一个空行,excel,vba,Excel,Vba,我试图复制范围A6:L,从工作表“步骤1”向下复制到最后一行。 然后粘贴到“供应商副本”页上,但粘贴在A19后的第一个空行上 这是我所拥有的,除了粘贴在正确的位置之外,它什么都可以做。它从A1开始粘贴,这是一个空白单元格。然而,即使我用数字1填充从1到19的所有行,它仍然会粘贴在“Vendor_Copy”页上的A1中 谢谢你的帮助 Dim sht1 As Worksheet Dim sht2 As Worksheet Dim lr As Long Set sht1 = Workshee
Dim sht1 As Worksheet
Dim sht2 As Worksheet
Dim lr As Long
Set sht1 = Worksheets("Step 1")
Set sht2 = Worksheets("Vendor_Copy")
lr = sht2.Range("A19").End(xlDown).Row
sht1.Activate
Range("A6").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
sht2.Activate
Cells(lastrow + 1, 1).PasteSpecial
试试这个:
Dim sht1作为工作表
将sht2变暗为工作表
变暗rng As范围
设置sht1=工作表(“步骤1”)
Set sht2=工作表(“供应商副本”)
使用sht1
设置rng=.Range(“A6”),.Range(“A6”).End(xlDown))
设置rng=.Range(rng,rng.End(xlToRight))
以
副本
sht2.单元格(Rows.Count,“A”).结束(xlUp).偏移量(1,0).粘贴特殊
另请参见:不要使用
选择对象。它的意思是作为屏幕和VBA之间的接口。相反,请使用范围
对象,该对象允许您直接寻址工作表
您希望填写的第2页上的行是下一个免费行,但不小于19。在Excel术语中,这是MAX()函数的结果,包含在下面的代码中
Dim Sht1 As Worksheet
Dim Sht2 As Worksheet
Dim Rng As Range
Dim Cl As Long ' Column: last used
Dim Rt As Long ' Row: target
Set Sht1 = Worksheets("Step 1")
Set Sht2 = Worksheets("Vendor_Copy")
With Sht1
Cl = .Cells(6, .Columns.Count).End(xlToLeft).Column
Set Rng = .Range(.Cells(6, "A"), .Cells(.Rows.Count, "A").End(xlUp)).Resize(, Cl)
End With
With Sht2
' Columns(1) = Columns("A")
Rt = WorksheetFunction.Max(.Cells(.Rows.Count, 1).End(xlUp).Row + 1, 19)
Rng.Copy Destination:=.Cells(Rt, 1)
End With
请注意,单元格(6,1).End(xlDown).Row
-或范围(“A6”).End(xlDown).Row
将为您提供A6下方最后使用的单元格的地址,该单元格后面紧跟一个空格<代码>单元格(Rows.Count,1).End(xlUp).Row
将为您提供从工作表底部查看A列中第一个使用的单元格(Rows.Count
)。不同之处在于,从上往下看,下一个空格可能不是列中最后使用的单元格。这与单元格(6,1).End(xlToRight).Column
和单元格(6,Columns.Count).End(xlToLeft).Column
之间的区别相同。从左向右看,可以找到最后使用的列。从右到左查看第一个空格。sht2.单元格(Rows.Count,“A”).结束(xlUp).偏移量(1,0).粘贴特殊避免使用xlDown
查找最后一行。您可能希望类似地避免使用xlToRight
查找最后一列。@Siddarth Rout哈哈。这是微软的方式:让事情变得更容易,直到任务不再可识别,因此无法解决。如果您再次阅读我的代码,您将看到我在某些方面遵循了您的建议,但并非始终如一。很难取得正确的平衡。但是OP很可能会感谢你的指点。