VBA 用户定义函数(UDF):将数组作为数组函数返回到多个 Excel 单元格

问题描述 投票:0回答:0

我编写了一个简单的函数,它根据作为函数参数提供的两个范围返回“日期”类型的二维数组。

我的 UDF 工作正常,但是当我通过 CTRL-Shift-Enter 在 Excel 单元格中输入公式并将单元格扩展到下面的行时,始终只显示第一个数组值(第一个日期)。

我尝试通过

Worksheetfunction.Transpose(arr)
转置函数中的数组,但这确实杀死了 Excel 进程。很奇怪。

这是函数:

  Public Function EVA_Deadlines(Start_Dates As Range, _
  Due_Dates As Range) As Date()

  Dim dates() As Date, c As New Collection, r As Range, l As Long
  
  c.add min(Start_Dates.value)
  For Each r In Due_Dates
    c.add getLastDayOfMonth(r.value)
  Next
  With New clsCollectionHelper
    Set .items = c
    Set c = .removeDuplicates
  End With
  
  ReDim dates(1 To c.count, 1 To 1)
  For l = 1 To c.count
    dates(l, 1) = c(l)
  Next
  EVA_Deadlines = dates

End Function
excel vba user-defined-functions
© www.soinside.com 2019 - 2024. All rights reserved.