无法使Replace方法与Array Formula(VBA)一起使用

迭戈·里巴(Diego Ribba)

我一直在寻找输入长数组公式的解决方案,但是replace方法不起作用。这是我的代码:

Sub code()
Dim parte1, parte2 As String
With ThisWorkbook.Sheets("RESUMEN E. CRITICOS")
    ''RUT
        parte1 = "IFERROR(INDEX(rut_cliente,SMALL(IF(plataforma=R1C2,ROW(rut_cliente)-ROW(BD_EV!R3C1)+1),ROWS(BD_EV!R2C1:R[-1]C[-2]))),"""")"
        With .Range("C3")
            .FormulaArray = "=IF(R1C2=""Todas"",IFERROR(INDEX(rut_cliente,SMALL(IF(plataforma<>""*"",ROW(rut_cliente)-ROW(BD_EV!R3C1)+1),ROWS(BD_EV!R2C1:R[-1]C[-2]))),""""),reemplazar)"
            .Replace "reemplazar", parte1, xlPart
        End With
End With
End Sub

该数组公式从另一个工作表中获取值列表,并使用命名范围和静态引用。问题是,如果我要删除引用工作表上的行,则静态引用将停止工作。我尝试对静态引用使用具有命名范围的解决方法,但这无济于事(它们会不断重新排列引用范围...无法告诉原因)。这是静态引用:ROW(BD_EV!R3C1)+1)ROWS(BD_EV!R2C1:R[-1]C[-2])请帮忙!谢谢!

凯洛人

这将替换reeplazar为您的字符串,然后要做的就是确保在将其分配给单元格时将其分配为数组公式。我相信您的公式可以正常运行,因为我无法对其进行测试。

但是这段代码将为您完成替换

Sub code()
Dim parte1, parte2 As String
With ThisWorkbook.Sheets("RESUMEN E. CRITICOS")
    ''RUT

        parte1 = "IFERROR(INDEX(r‌​ut_cliente,SMALL(IF(‌​plataforma=R1C2,ROW(‌​rut_cliente)-ROW(BD_‌​EV!R3C1)+1),ROWS(BD_‌​EV!R2C1:R[-1]C[-2]))‌​),""""))"

        rep = "=IF(R1C2=""Todas"",IFERROR(INDEX(rut_cliente,SMALL(IF(plataforma<>""*"",ROW(rut_cliente)-ROW(BD_EV!R3C1)+1),ROWS(BD_EV!R2C1:R[-1]C[-2]))),""""),reemplazar)"
        arrayFormula = Replace(rep, "reemplazar", parte1)
        With .Range("C3")
            .FormulaArray = arrayFormula
        End With
End With
End Sub

或者,如果您想从单元格本身获取价值,

Sub code()
Dim parte1, parte2 As String
With ThisWorkbook.Sheets("RESUMEN E. CRITICOS")
    ''RUT

        parte1 = "IFERROR(INDEX(rut_cliente,SMALL(IF(plata‌​forma<>""*"",ROW(rut‌​_cliente)-ROW(BD_EV!‌​$A$3)+1),ROWS(BD_EV!‌​$A$2:A2))),""""),IFE‌​RROR(INDEX(rut_clien‌​te,SMALL(IF(platafor‌​ma=$B$1,ROW(rut_clie‌​nte)-ROW(BD_EV!$A$3)‌​+1),ROWS(BD_EV!$A$2:‌​A2))),""""))"
        cel = .Range("C3").FormulaArray

        arrayFormula = Replace(cel, "reemplazar", parte1)
        .Range("C3").FormulaArray = arrayFormula

End With
End Sub

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章