单独的工作簿的VBA .FormulaArray错误

时间:2018-07-31 15:37:55

标签: excel-vba

我正在尝试将“匹配数组公式”放入表格的单元格中。

该公式将在特定列(均在同一行)中使用四个值,在单独的工作簿的特定表中搜索这些值,然后返回说“匹配”或“不匹配”。

该数组有效,公式来自记录宏。我花了一段时间在网上寻找有关如何将数组拆分为不超过255个字符的限制,并且正在使用.Replace函数。考虑在宏的持续时间不超过字符数限制的情况下为单独的工作簿命名/重命名,但无法使其正常工作。单独的工作簿来自第三方,我的访问权限受到限制(仅对大多数单元格只读),因此不确定是否是原因。

我在下面创建的公式始终在行中出现相同的错误[(1004),无法设置Range类的FormulaArray属性]:

.FormulaArray = theFormulaPart1

我在网上找不到任何确定此错误原因的示例。任何帮助表示赞赏。完整代码如下。

Sub error()

Dim theFormulaPart1 As String
Dim theFormulaPart2 As String

theFormulaPart1 = "=IFERROR(IF(MATCH([@EquipTag]&[@CompName]&[@RiskEDDNumber]" & _
    "&[@[Current SHE Risk]]," & _
    "X_X_X()"

theFormulaPart2 = "'[Distillation ES Status Tracking.xlsx]SHE'!C[-3]" & _
    "&'[Distillation ES Status Tracking.xlsx]SHE'!C[1]&'[Distillation ES Status Tracking.xlsx]SHE'!C[2]" & _
    "&'[Distillation ES Status Tracking.xlsx]SHE'!C[4],0),""Match"",),""No Match"")"

    With ActiveSheet.Range("E2")
        .FormulaArray = theFormulaPart1
        .Replace "X_X_X()", theFormulaPart2, LookAt:=xlPart
    End With

End Sub

0 个答案:

没有答案