VBA - Arrayformula para um intervalo armazenado como variável de array


3

Preciso aplicar uma matriz de fórmulas a intervalos dinâmicos em minhas planilhas, o que para um intervalo de tamanho fixo funciona bem usando, por exemplo:

Selection.Offset(2, 0).FormulaArray = "=(SUM((Exx:Eyy-Fxx:Fyy)^2)/X)^.5"

Mas os intervalos não têm um tamanho e uma posição fixos em todas as minhas planilhas, então eu os seleciono inicialmente e depois os armazeno como matrizes da dimensão 1 e depois redimiro para o comprimento N.

Essas matrizes serão nomeadas, por exemplo, A para o intervalo Exx: Eyy e B para o intervalo Fxx: Fyy; portanto, quando desejar aplicar a mesma fórmula de matriz mencionada acima, recebo o erro Compile Error: type mismatch when using the array variables instead of the explicit rangescom:

Selection.Offset(2, 0).FormulaArray = "=(SUM((" & A & "-" & B & ")^2)/X)^.5"

E se eu não usar as aspas e o e comercial, é claro, recebi o erro name.

Também tentei usar a evaluatepropriedade no lado direito da igualdade e ela funciona sem erros, mas dessa maneira não obtenho o mesmo valor que o uso da matriz de fórmulas: /

Alguém pode me dar uma mão por favor?

Respostas:


1

Não está claro em sua pergunta qual é o tipo de dado de sua string / intervalo de matrizes? Parece que o excel

  • ou não sabe qual planilha você quer dizer (se sua referência estiver armazenada como uma sequência, adicione também planilha ao endereço (por exemplo, planilha1! a1: b1))
  • o excel interpreta mal seus dados (se sua referência estiver armazenada no intervalo, tente usar A.address em vez de apenas A)
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.