什么数据类型是Excel单元格引用(VBA)?

时间:2016-06-29 18:41:54

标签: excel excel-vba named-ranges addressing vba

什么数据类型是Excel单元格引用?我构造了表示单元格引用的字符串(例如“G12”,“AW12”等),并希望使用它们来创建命名范围;

Dim UpperLeftHandCornerOfRangeCellReference As String
UpperLeftHandCornerOfRangeCellReference = "G12"
Dim LowerRightHandCornerOfRangeCellReference As String    
LowerRightHandCornerOfRangeCellReference = "AW12"
NamedSheet.Names.Add _
            name:=RangeName, _
            RefersTo:="=Sheet!UpperLeftHandCornerOfRangeCellReference:LowerRightHandCornerOfRangeCellReference"

但是,它们不会被解释为单元格引用,而是相应字符串的名称,因此不会创建命名范围。有任何想法吗?请分享。谢谢!

更新

感谢@MattCremeens的帮助。

考虑是否以这种方式完成;

Dim myCell1 As String
myCell1 = "G12"
Dim myCell2 As String
myCell2 = "AW12"
NamedSheet.Names.Add _
            name:=RangeName, _
            RefersTo:="=Sheet!myCell1:myCell2"

这样不起作用,因为'RefersTo'参数中的引号不允许读取字符串变量'myCell(1/2)'。有办法解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

我相信你的意思是

Dim UpperLeftHandCornerOfRangeCellReference As Range    
Set UpperLeftHandCornerOfRangeCellReference = Range("G12")

在为变量指定范围时必须使用Set关键字。

如果你想存储你的字符串

myCell = "G12"

然后只需将上面的第2行更改为

Set UpperLeftHandCornerOfRangeCellReference = Range(myCell)

现在,如果你有一个命名范围的单元格(也许你的意思是单元格引用是一个字符串??),你可以这样做

Set UpperLeftHandCornerOfRangeCellReference = Worksheets("Sheet1").Names("MyRangeName").RefersToRange