Excel 单元格引用 (VBA) 是什么数据类型?
What Data Type is an Excel Cell Reference (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)'。有什么办法可以解决这个问题吗?
我相信你的意思是
Dim UpperLeftHandCornerOfRangeCellReference As Range
Set UpperLeftHandCornerOfRangeCellReference = Range("G12")
为变量分配范围时必须使用 Set
关键字。
如果你想像
那样存储你的字符串
myCell = "G12"
然后把上面的第二行改成
Set UpperLeftHandCornerOfRangeCellReference = Range(myCell)
现在,如果您有一个命名范围的单元格(也许这就是您所说的单元格引用是一个字符串的意思??),您可以改为这样做
Set UpperLeftHandCornerOfRangeCellReference = Worksheets("Sheet1").Names("MyRangeName").RefersToRange
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)'。有什么办法可以解决这个问题吗?
我相信你的意思是
Dim UpperLeftHandCornerOfRangeCellReference As Range
Set UpperLeftHandCornerOfRangeCellReference = Range("G12")
为变量分配范围时必须使用 Set
关键字。
如果你想像
那样存储你的字符串myCell = "G12"
然后把上面的第二行改成
Set UpperLeftHandCornerOfRangeCellReference = Range(myCell)
现在,如果您有一个命名范围的单元格(也许这就是您所说的单元格引用是一个字符串的意思??),您可以改为这样做
Set UpperLeftHandCornerOfRangeCellReference = Worksheets("Sheet1").Names("MyRangeName").RefersToRange