我正在尝试创建一个函数(名为CreateRowRange
),它将采用格式为“$ A $ 5”的字符串,并生成一个形式为“A5:M5”的字符串。同样,如果我用“$ A $ 14”调用该函数,它将返回“A14:M14”。我有一个Excel电子表格,其中包含“A”到“M”列中的数据。我在Stack Overflow(Concatenating Variables Into String to be Set to a Range in VBA)上发现了类似的帖子,但它看起来过于复杂。到目前为止为该函数编写的代码是:
Function CreateRowRange(CellAddress) As String
CreateRowRange = Range(CellAddress).Row
End Function
答案 0 :(得分:3)
这应该返回你想要的东西:
Function CreateRowRange(CellAddress) As String
CreateRowRange = Range(Range(CellAddress),Range("M" & Range(CellAddress).Row)).Address(False,False)
End Function
答案 1 :(得分:2)
好的,试试这个:
Function CreateRowRange(CellAddress as String) as String
CreateRowRange = Replace(CellAddress, "$", "")
CreateRowRange = CreateRowRange & ":" & Replace(CreateRowRange, "A", "M")
End Function
答案 2 :(得分:0)
Excel已经内置了修改范围的属性和方法。如果您打算像
那样使用它Range(CreateRowRange("$A$14")).Value = "X"
然后你可以用
实现同样的目的Range("$A$14").Resize(1,13).Value = "X"
如果您正在构建类似
的公式ActiveCell.Formula = "=SUM(" & CreateRowRange("$A$14") & ")"
然后你可以用
实现同样的目的ActiveCell.Formula = "=SUM(" & Range("A14").Resize(1,13).Address(0,0) & ")"
0,0
部分使地址相关 - 没有美元符号