根据variablesexcel vbaselect整行
我试图select不同的工作表中的整个行,然后将该行复制到我正在使用macros的工作表中。 代码工作正常,如果行()子传递整数硬编码,但是当我把一个variables,我得到的“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
它工作正常,但是当variables存在时,会发生错误。
谢谢
我只是testing底部的代码,它打印两次16384
(我在Excel 2010),第一行被选中。 你的问题似乎在别的地方。
你试图摆脱select:
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
testing代码,以确信问题似乎并不是你想象的那样。
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
在另一个网站看到这个答案,它也适用于我!
Shawn发表于2001年10月14日下午1:24
var1 = 1
var2 = 5
Rows(var1 & ":" & var2).Select
这对我工作,看起来像你只需要保持在引号外的variables,并添加和语句(&)
-Shawn
关键是在引号周围的冒号和&即行(variables&“:”和variables).select
适应这个:
Rows(x & ":" & y).select
其中x和y是你的variables。
其他一些可能会帮助你理解的例子
Rows(x & ":" & x).select
要么
Rows((x+1) & ":" (x*3)).select
要么
Rows((x+2) & ":" & (y-3)).select
希望你明白了。
你需要添加引号。 VBA正在翻译
Rows(copyToRow & ":" & copyToRow).Select`
成
Rows(52:52).Select
尝试改变
Rows(""" & copyToRow & ":" & copyToRow & """).Select