VBA - Arrayformula do zakresu przechowywanego jako zmienna tablicowa


3

Muszę zastosować tablicę formuł do zakresów dynamicznych w moich arkuszach kalkulacyjnych, które dla ustalonego zakresu rozmiarów działają dobrze, używając na przykład:

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

Ale zakresy nie mają ustalonego rozmiaru i pozycji we wszystkich moich arkuszach kalkulacyjnych, więc wybieram je początkowo, a następnie przechowuję jako tablice o wymiarze 1, a następnie zmniejszam do długości N.

Te tablice będą nazwane na przykład A dla zakresu Exx: Eyy i B dla zakresu Fxx: Fyy, więc kiedy chcę zastosować tę samą wyżej wspomnianą formułę tablicową, pojawia się błąd Compile Error: type mismatch when using the array variables instead of the explicit ranges:

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

A jeśli nie użyję cudzysłowów i ampersand, oczywiście mam błąd name.

Próbowałem także użyć evaluatewłaściwości po prawej stronie równości i działa ona bez błędów, ale w ten sposób nie otrzymuję takiej samej wartości jak przy użyciu tablicy formuł: /

Czy ktoś może mi pomóc?

Odpowiedzi:


1

Z pytania nie wynika jasno, jaki jest typ danych łańcucha / zakresu tablic? Wydaje się, że przoduje

  • albo nie wiem, który arkusz masz na myśli (jeśli twoje odniesienie jest zapisane jako ciąg, niż dodaj arkusz również do adresu (np. arkusz1! a1: b1))
  • albo celuj źle interpretuj swoje dane (jeśli twoje odniesienie jest przechowywane w zasięgu, spróbuj użyć A.adres zamiast tylko A)
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.