powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Запись формулы массива в макросе
3 сообщений из 3, страница 1 из 1
Запись формулы массива в макросе
    #36440075
Gena108
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день.
Пытаюсь формулу массива записать в макросе, новы ходит какой то парадокс, т.е. например::
Код: plaintext
1.
    'Range("O9").FormulaArray = _
        "=SUM(IF(R2C='[" & otchet_f & "]Контракт'!R2C5:R2088C5,IF(R1C2='[" & otchet_f & "]Контракт'!R2C1:R2088C1,IF(R1C2='[" & otchet_f & "]Контракт'!R2C1:R2088C1,'[" & otchet_f & "]Контракт'!R2C6:R2088C6))))"
не работает, а
Код: plaintext
1.
    'Range("O9").FormulaArray = _
        "=SUM(IF(R2C='[" & otchet_f & "]Контракт'!R2C5:R2088C5,IF(R1C2='[" & otchet_f & "]Контракт'!R2C1:R2088C1,'[" & otchet_f & "]Контракт'!R2C6:R2088C6)))"
- работает.
Все нормально считает, если записать в макрос формулу с явной ссылкой на книгу.
Подскажите, плиз, как можно эту штуку обойти?
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Запись формулы массива в макросе
    #37287341
iva_nov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Похожая фигня:
Рабочий код:
Код: plaintext
1.
Selection.Range("I2").Select
Selection.FormulaArray = "=СУММА(E1:E2)"
Не рабочий код:
Код: plaintext
1.
Selection.Range("I2").Select
Selection.FormulaArray = "=ВПР(E2;Лист2!A:D;2;0)"
Ошибка: "Run-time error '1004': Нельзя установить свойство FormulaArray класса Range

Причем, через Cells ошибка та же.
...
Рейтинг: 0 / 0
Запись формулы массива в макросе
    #37287628
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iva_nov,

А в каком Excel появилась функция СУММА? У меня только СУММ есть...А лучше вообще на английском записывать
Код: plaintext
Selection.FormulaArray = "=SUM(E1:E2)"

А для чего ВПР как массив записывать вообще не понял...Но записывать надо так:
Код: plaintext
Selection.FormulaArray = "=VLookup(E2,Лист2!A:D,2,0)"
Т.е. вместо точки-с-запятой надо ставить запятые . Так требует синтаксис VBA.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Запись формулы массива в макросе
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]