当从单元格调用的函数中使用时,CurrentRegion的结果不正确

时间:2015-05-05 23:43:11

标签: excel-vba excel-formula vba excel

我试图编写要从单元格调用的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被选中时。

任何想法?

1 个答案:

答案 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

似乎工作正常。