2015-07-21 122 views
1

我想在范围内传递一个变量,但我不能,所以整个问题是,我有两个varibales a和b值可以更改。现在我想选择这个范围,但是我无法将它选作VBA中的一个范围。范围与作为VBA输入变量

a = ActiveCell.Address ' suppose it returns me A3 

b = ActiveCell.Offset(20, 0).Address ' suppose it returns me A23 

Set d = range("a:b") ' here i want to select A3:A23, but I am not able to 

d.select 

请帮

回答

1

您在报价范围内声明抑制ab。他们正在被阅读为文字。不要引用它们。

a = ActiveCell.Address ' suppose it returns me A3 
b = ActiveCell.Offset(20, 0).Address ' suppose it returns me A23 
Set d = range(a & ":" & b) ' here i want to select A3:A23, but I am not able to 

d.select 
+0

非常棒,对不起我的哑巴 –

0

小错误。尝试这个。

a = ActiveCell.Address 'Get A3 

b = ActiveCell.Offset(20, 0).Address 'Get A23 

Range(a, b).Select 'Select A3:A23 
0

Set d = Range(a, b)应该这样做。你知道Range(ActiveCell, ActiveCell.Offset(20, 0)).Select也一样吗?此外,你不应该选择一个范围,如果你想复制,例如,你只会使用Range(ActiveCell, ActiveCell.Offset(20, 0)).Copy