返回表示工作表行的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部分使地址相关联 – 没有美元符号