将字符串传递到VBA中的Range Function

时间:2015-01-23 15:37:36

标签: string vba excel-vba range excel

我正在尝试在函数中创建一个范围,但范围会有所不同,所以我将把定义作为一个字符串传递但是我遇到了一个错误,因为它说它"期望一个数组" 。所以,我认为这是因为没有包含双引号所以我试图通过加倍双引号将它们包含在字符串中但现在VBA说我在该字符串中有一个无效字符(这是第一个美元标志)。我真的很困惑如何解决这个问题。任何帮助将不胜感激。

gRange = ""$A$1:$F$2""

2 个答案:

答案 0 :(得分:0)

每当我在VBA中遇到字符串中有额外引号的问题时,我总是会再次使用Chr(34)来替换。

gRange = Chr(34) & "$A$1:$F$2" & Chr(34)

Chr() MSDN Reference

答案 1 :(得分:0)

我找到了一个使用if语句的解决方案,如下所示:

If sheetName = "Totals" Then
ChartData.ActiveSheet.ListObjects("Table1").Resize Range("$A$1:$F$2")
Else
ChartData.ActiveSheet.ListObjects("Table1").Resize Range("$A$1:$G$2")
End If

而不是使用字符串。