我的 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 的原因是它在我的工作簿中刷新了很多并且不断运行,这减慢了一切。