VBA - Arrayformula для диапазона, хранящегося как переменная массива


3

Мне нужно применить массив формул к динамическим диапазонам в моих электронных таблицах, который для фиксированного диапазона размеров работает нормально, например:

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

Но диапазоны не имеют фиксированного размера и положения во всех моих электронных таблицах, поэтому я сначала выбираю их, а затем сохраняю их как массивы измерения 1, а затем переименовываю до длины N.

Эти массивы будут названы, например, A для диапазона Exx: Eyy и B для диапазона Fxx: Fyy, поэтому, когда я хочу применить ту же вышеупомянутую формулу массива, я получаю ошибку 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"

И если я не использую кавычки и амперсанд, конечно, я получил ошибку name.

Я также попытался использовать evaluateсвойство в правой части равенства, и оно работает без ошибок, но таким образом я не получаю то же значение, что и при использовании массива формул: /

Может кто-нибудь помочь мне, пожалуйста?

Ответы:


1

Из вашего вопроса не ясно, каков тип данных ваших массивов string / range? Кажется, что Excel

  • либо не знаете, какой лист вы имеете в виду (если ваша ссылка хранится в виде строки, чем добавить лист к адресу тоже (например, sheet1! a1: b1))
  • либо Excel неправильно истолковывает ваши данные (если ваша ссылка хранится в диапазоне, попробуйте использовать A.address вместо просто A)
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.