2017-02-01 54 views
0

我需要使用Chr函数选择单元“E1到E4”。如何使用Chr选择范围

我一直在尝试使用下面的代码行,但它有一些问题,代码不能编译。

它给出运行时错误'1004':对象'_Global'的方法'范围'失败。

Dim num2 As Integer 
num2 = 69 
Range("Chr(num2) & 1 : Chr(num2) & 4").Select 

请帮忙。谢谢:)

+4

你错过concats:'“CHR(NUM2)&1& ”:“ &CHR(NUM2)4 “'。但严重的是,不要这样做 - 使用'.Cells'和数字索引来代替。你正在做大量的分析,Excel只是在Range调用的另一端进行反转。 – Comintern

+0

另外,你为什么“需要”使用'.Select'?尽可能避免使用'.Select' /'.Activate'](https://stackoverflow.com/questions/10714251/how-to-avoid-using-select-in-excel-vba-macros)。另外,@Comintern的观点,你可以扩展你的主要任务/问题吗?这听起来像我们可能有一个[XY问题](https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem) – BruceWayne

+1

@Comintern太多'''在你的修正中。 (num2)&1&“:”&Chr(num2)&4'或'Chr(num2)&“1:”&Chr(num2)&“4”'应该会更好。 –

回答

0

它不工作,因为不正确的串联。我建议你存储范围的字符串作为一个独立的变量来帮助您调试像这样:

Sub Test() 
Dim num2 As Integer 
Dim strRange As String 

    num2 = 69 
    'Store range string as a variable 
    strRange = Chr(num2) & "1:" & Chr(num2) & "4" 
    'Pass the variable into the Range function 
    Range(strRange).Select 

End Sub