String 在VBA中将字符串传递到范围函数中

String 在VBA中将字符串传递到范围函数中,string,vba,excel,range,String,Vba,Excel,Range,我试图在函数中创建一个范围,但范围不同,因此我将以字符串形式传入定义,但我遇到了一个错误,因为它表示需要一个数组。所以,我认为这是因为双引号没有包括在内,所以我尝试通过双引号将它们包括在字符串中,但现在VBA说,我在字符串中有一个无效字符,它是第一个美元符号。我真的很困惑如何解决这个问题。任何帮助都将不胜感激 gRange = ""$A$1:$F$2"" 每当我在VBA中遇到字符串中带有额外引号的问题时,我总是使用Chr34来替换 gRange = Chr(34) & "$A$1:$F

我试图在函数中创建一个范围,但范围不同,因此我将以字符串形式传入定义,但我遇到了一个错误,因为它表示需要一个数组。所以,我认为这是因为双引号没有包括在内,所以我尝试通过双引号将它们包括在字符串中,但现在VBA说,我在字符串中有一个无效字符,它是第一个美元符号。我真的很困惑如何解决这个问题。任何帮助都将不胜感激

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

每当我在VBA中遇到字符串中带有额外引号的问题时,我总是使用Chr34来替换

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

我找到了一个使用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

而不是使用字符串。

ChartData.ActiveSheet.ListObjectsTable1.Resize RangeGrange在function@NeilCaffrey我不确定您是否可以像那样使用变量范围,因为它已经受到保护。如果使用ChartData.ActiveSheet.ListObjectsTable1.Resize RangegRangeI,会发生什么情况?我最终找到了一个使用if语句的解决方案。能否显示函数头及其调用?你不应该用双引号。格兰奇是什么?它可能是数组变量…至少显示函数的代码。。。如果它需要一个ayyay,可能Sheetswhatever.rangegRange.value就是数组。还忘了双引号,gRange是一个字符串