Vba 函数,该函数返回表示工作表行的字符串

Vba 函数,该函数返回表示工作表行的字符串,vba,excel,Vba,Excel,我试图创建一个名为CreateRowRange的函数,它将接受一个格式为$a$5的字符串,并生成一个格式为A5:M5的字符串。类似地,如果我用$A$14调用函数,它将返回A14:M14。我有一个Excel电子表格,从A列到M列都有数据。我发现了一篇关于堆栈溢出的类似文章,但它似乎过于复杂。迄今为止为函数编写的代码是: Function CreateRowRange(CellAddress) As String CreateRowRange = Range(CellAddress).Row

我试图创建一个名为CreateRowRange的函数,它将接受一个格式为$a$5的字符串,并生成一个格式为A5:M5的字符串。类似地,如果我用$A$14调用函数,它将返回A14:M14。我有一个Excel电子表格,从A列到M列都有数据。我发现了一篇关于堆栈溢出的类似文章,但它似乎过于复杂。迄今为止为函数编写的代码是:

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
    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
好的,试试这个:

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"
ActiveCell.Formula = "=SUM(" & Range("A14").Resize(1,13).Address(0,0) & ")"
如果你在建立一个公式,比如

ActiveCell.Formula = "=SUM(" & CreateRowRange("$A$14") & ")"
然后你就可以用它来实现同样的目标

Range("$A$14").Resize(1,13).Value = "X"
ActiveCell.Formula = "=SUM(" & Range("A14").Resize(1,13).Address(0,0) & ")"

0,0部分使地址具有相关性-没有美元符号

Excel已经内置了修改范围的属性和方法。如果你想像这样使用它

Range(CreateRowRange("$A$14")).Value = "X"
然后你就可以用它来实现同样的目标

Range("$A$14").Resize(1,13).Value = "X"
ActiveCell.Formula = "=SUM(" & Range("A14").Resize(1,13).Address(0,0) & ")"
如果你在建立一个公式,比如

ActiveCell.Formula = "=SUM(" & CreateRowRange("$A$14") & ")"
然后你就可以用它来实现同样的目标

Range("$A$14").Resize(1,13).Value = "X"
ActiveCell.Formula = "=SUM(" & Range("A14").Resize(1,13).Address(0,0) & ")"

0,0部分使地址具有相关性-无美元符号

这很好,我被OPs对range的使用抓住了,忘记了输入和输出都是字符串。这很好,我被OPs对范围的使用抓住了,忘记了输入和输出都是字符串。@PublicTechie2015可以随意接受任何一个答案为正确。@PublicTechie2015可以随意接受任何一个答案为正确。我想我只是在你之前的问题中解决了这个问题……我想我只是在你之前的问题中解决了这个问题问题