我正在尝试选择不同工作表中的整行,然后使用宏将该行复制到我当前所在的工作表中。如果 Rows() sub 传递硬编码的整数,则代码工作正常,但是当我放置变量时,我收到“Range 类的 Select 方法失败”错误。这是我的代码:
Sheets("BOM").Select
Rows(copyFromRow & ":" & copyFromRow).Select
Selection.Copy
Sheets("Proposal").Select
Rows(copyToRow & ":" & copyToRow).Select
ActiveSheet.Paste
copyToRow = copyToRow + 1
Rows(copyToRow & ":" & copyToRow).Select
Application.CutCopyMode = False
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
如果我使用:
Rows("52:52").Select
Selection.Copy
它工作正常,但是当变量存在时,就会发生错误。
谢谢
最佳答案
我刚刚测试了底部的代码,它打印 16384
两次(我使用的是 Excel 2010),并且第一行被选中。您的问题似乎出在其他地方。
您是否尝试过删除选择:
Sheets("BOM").Rows(copyFromRow).Copy
With Sheets("Proposal")
.Paste Destination:=.Rows(copyToRow)
copyToRow = copyToRow + 1
Application.CutCopyMode = False
.Rows(copyToRow).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
End With
<小时/>
测试代码以确信问题似乎并不像您想象的那样。
Sub test()
Dim r
Dim i As Long
i = 1
r = Rows(i & ":" & i)
Debug.Print UBound(r, 2)
r = Rows(i)
Debug.Print UBound(r, 2)
Rows(i).Select
End Sub
关于excel - 根据变量excel vba选择整行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10587004/