Excel VBA:在工作表中自定义项的地址上应用MAX
我已经编写了一个UDF,它从工作表中返回范围(没有标题的列)的地址。输出是一个类似“$a$2$a$5”的字符串。在另一个工作表中,我想在单元格A2到A5的相应范围内应用几个工作表函数,例如MAX。 当用相应的字符串值替换UDF时,MAX和UDF的组合会导致错误消息(#Value):MAX($A$2$A$5)起作用。 有没有办法让这一切顺利进行?代码:Excel VBA:在工作表中自定义项的地址上应用MAX,excel,vba,Excel,Vba,我已经编写了一个UDF,它从工作表中返回范围(没有标题的列)的地址。输出是一个类似“$a$2$a$5”的字符串。在另一个工作表中,我想在单元格A2到A5的相应范围内应用几个工作表函数,例如MAX。 当用相应的字符串值替换UDF时,MAX和UDF的组合会导致错误消息(#Value):MAX($A$2$A$5)起作用。 有没有办法让这一切顺利进行?代码: Public Function SELECTH(SheetName As String, HeaderName As String) As Str
Public Function SELECTH(SheetName As String, HeaderName As String) As String
Dim ColIndex As Integer
Dim MaxRowIndex As Integer
ColIndex = ActiveWorkbook.Worksheets(SheetName).Rows(1).Find(HeaderName).Column
MaxRowIndex = ActiveWorkbook.Worksheets(SheetName).Cells(1, 1).End(xlDown).Row
SELECTH = ActiveWorkbook.Worksheets(SheetName).Range(Cells(2, ColIndex), Cells(MaxRowIndex, ColIndex)).Address()
End Function
返回范围而不是字符串:
Public Function SELECTH(SheetName As String, HeaderName As String) As Range
Dim ColIndex As Long
Dim MaxRowIndex As Long
With ActiveWorkbook.Worksheets(SheetName)
ColIndex = .Rows(1).Find(HeaderName).Column
MaxRowIndex = .Cells(1, 1).End(xlDown).Row
Set SELECTH = .Range(.Cells(2, ColIndex), .Cells(MaxRowIndex, ColIndex))
End With
End Function
返回范围而不是字符串:
Public Function SELECTH(SheetName As String, HeaderName As String) As Range
Dim ColIndex As Long
Dim MaxRowIndex As Long
With ActiveWorkbook.Worksheets(SheetName)
ColIndex = .Rows(1).Find(HeaderName).Column
MaxRowIndex = .Cells(1, 1).End(xlDown).Row
Set SELECTH = .Range(.Cells(2, ColIndex), .Cells(MaxRowIndex, ColIndex))
End With
End Function