0

我的 excel 版本中没有 TEXTJOIN 函数,因此我在模块中创建了该函数的 UDF。我想要做的是有一个调用 TEXTJOIN 的宏,但我很难使用带有变量的数组公式。

我的第一个想法是通过 .FormulaArray 将单元格设置为等于公式,但 VBA 无法识别 UDF。

接下来,我尝试使用一个变量来保存公式,以便将其称为 .FormulaArray 但这会导致类型不匹配,因为我不完全确定将变量调暗为什么。

这是我编写的代码,但返回类型不匹配的行是 t = TJoin(.....)

Sub TJ_1in()

Dim cell As Variant
Dim s1 As Worksheet
Dim input1 As Range
Dim output1 As Range
Dim t As Variant

Dim entry As Range

Set input1 = Range("Box_Sizes")
Set output1 = Range("Customers")
Set s1 = Worksheets("Plus-Minus 1 in.")

For Each cell In Range("range1")

    Set entry = s1.Cells(5, 6)

    t = TJoin(", ", IIf(entry = input1, output1, ""))

    With cell
        .FormulaArray = "=t"
    End With

    Set entry = entry.Offset(1, 0)

Next cell

End Sub

我想在宏(带有按钮)而不是实际公式中调用 TEXTJOIN 的原因是它在我的工作簿中刷新了很多并且不断运行,这减慢了一切。

4

0 回答 0