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 ответ1

1

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

  • либо не знаете, какой лист вы имеете в виду (если ваша ссылка хранится в виде строки, чем добавить лист к адресу тоже (например, sheet1!a1:b1))
  • либо Excel неправильно интерпретирует ваши данные (если ваша ссылка хранится в диапазоне, попробуйте использовать A.address вместо просто A)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .