如何使用单元格值填充VBA中的范围?
在这个例子中,我想复制一个选择并根据单元格L2的值将其粘贴到一行,行号与L2值相同。
我理解的最后一行代码不正确,但无法找出一个合适的解决方案,例如选择B100:K100。
Set Rng1 = Range("L2").Value
Range("B2:K2").Select
Selection.Copy
Range("B" & Range(Rng1) : "K" & Range(Rng1).Select
提前致谢
答案 0 :(得分:3)
如果您想要L2细胞行,请按以下步骤使用:
Range("B" & Rng1.Row & ":K" & Rng1.Row).Select
如果您想要L2细胞的值,请使用以下内容:
Range("B" & Rng1 & ":K" & Rng1).Select
答案 1 :(得分:2)
这是DragonSamu的回复稍微清晰一点:
Dim IntRow As Integer
IntRow = Range("L2").Value
Range("B2:K2").Copy
Range("B" & IntRow & ":K" & IntRow).Paste
VBA最佳做法尽可能避免使用.select
。
答案 2 :(得分:1)
建立在DragonSamu&特雷斯博士回应:
Dim IntRow As Integer
IntRow = Range("L2").Value
Range("B2:K2").Copy Destination:=Cells(IntRow, 2)
单元格引用单个单元格,但会根据需要粘贴整个范围 只要您不使用特殊粘贴,就可以复制并粘贴一个命令。
答案 3 :(得分:0)
另一种选择是:
Dim IntRow As Integer
IntRow = Range("L2").Value
Range("B2:K2").Select
Selection.Copy
Range("B" & IntRow & ":K" & IntRow).Select
不是通过收集单元格的值来定义范围,然后将其作为选择的行号应用,而只需将IntRow定义为Integer,将行值存储在IntRow中,并在范围select中使用它。