我试图编写要从单元格调用的VBA函数。在这个函数中,我需要使用CurrentRegion属性,但它会返回一个意外的结果。
功能:
Function GetVarRange() As String
Dim rngRangeToLeft As Range, wks As Worksheet
Set wks = Application.Caller.Worksheet
Set rngRangeToLeft = wks.Range("A1").CurrentRegion
GetVarRange = rngRangeToLeft.Address
End Function
我在单元格中获得的结果是$ A $ 1.
A1中有值,并且在它周围,CurrentRegion实际上是A1:AD618,这是我在代码编辑器中访问属性时得到的结果(不在此函数中),当我按下ctrl + A当A1被选中时。
任何想法?
答案 0 :(得分:1)
CurrentRegion 在从工作表单元格调用的 UDF()的中无法正常工作。我也发现了 FindNext 和 SpecialCells的问题。
从 Sub 调用,这是一个不同的故事:
Function GetVarRange(rng) As String
Dim rngRangeToLeft As Range, wks As Worksheet
Set rngRangeToLeft = rng.CurrentRegion
GetVarRange = rngRangeToLeft.Address
End Function
Sub MAIN()
MsgBox GetVarRange(Range("A1"))
End Sub
似乎工作正常。