返回表示工作表行的string的函数
我试图创build一个函数(名为CreateRowRange
),将采取forms为“$ A $ 5”的string,并产生一个forms为“A5:M5”的string。 同样,如果我用“$ A $ 14”调用函数,它将返回“A14:M14”。 我有一个Excel电子表格,数据列“A”到“M”。 我发现堆栈溢出(将string中的variables连接到VBA中设置的范围 )类似的post,但它似乎过于复杂。 迄今为止编写的代码是:
Function CreateRowRange(CellAddress) As String CreateRowRange = Range(CellAddress).Row End Function
这应该返回你想要的:
Function CreateRowRange(CellAddress) As String CreateRowRange = Range(Range(CellAddress),Range("M" & Range(CellAddress).Row)).Address(False,False) End Function
好的,试试这个:
Function CreateRowRange(CellAddress as String) as String CreateRowRange = Replace(CellAddress, "$", "") CreateRowRange = CreateRowRange & ":" & Replace(CreateRowRange, "A", "M") End Function
Excel已经内置了修改范围的属性和方法。 如果你打算使用它
Range(CreateRowRange("$A$14")).Value = "X"
那么你可以用同样的东西来实现
Range("$A$14").Resize(1,13).Value = "X"
如果你正在build立一个像
ActiveCell.Formula = "=SUM(" & CreateRowRange("$A$14") & ")"
那么你可以用同样的东西来实现
ActiveCell.Formula = "=SUM(" & Range("A14").Resize(1,13).Address(0,0) & ")"
0,0
部分使地址相关联 – 没有美元符号