Страницы: 1
RSS
Ошибка при заполнении столбца умной таблицы формулами посредством макроса
 
Добрый день. В Excel 2016 был создан макрос. Все работало отлично. Открыл книгу в Excel 2007 - вылетает ошибка 1004 application defined error.
В чем проблема?

Прилагаю код макроса:
Код
Private Sub Workbook_Open()
Application.Calculation = xlCalculationManual
Range("Заказ[код]").FormulaR1C1 = _
        "=IFERROR(впр2(INDIRECT(""База""&LEFT([@артикул])&""[наименование]""),[@[наименование в базе]],INDIRECT(""База""&LEFT([@артикул])&""[артикул]""),[@артикул],INDIRECT(""База""&LEFT([@артикул])&""[код]"")),"""")"
Range("Заказ[наименование в базе]").FormulaR1C1 = "=IF([@[наименование клиента]]="""",RC[7],фпр([@[наименование клиента]],RC[7]:RC[16]))"
Application.Calculation = xlCalculationAutomatic
End Sub
 
впр2() доступна?
Аналогично с фпр().
Изменено: Hugo - 05.12.2016 10:04:19
 
Цитата
surkenny написал: фпр
Что это?
 
Цитата
RAN написал: фпрЧто это?
Это пользовательская функция (ищет максимально совпадающее название в базе с таким же артикулом (они не уникальны, уникален код) с названием заказчика). Работает.

Цитата
Hugo написал: впр2() доступна? Аналогично с фпр().
Это ВПР по 2 параметрам. Работает.
Не работает именно макрос, обновляющий формулы и при старте книги, и по кнопке.
 
surkenny, с Вас файл-пример.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Сюда не загрузить. Кидаю ссылку на Dropbox/
 
Цитата
2.3. Приложите файл(ы) с примером (общим весом не более 100 Кб) в реальной структуре и форматах данных того, что есть сейчас...
Уберите всё лишнее, чтобы файл был в рамках лимита и воспроизводилась в нём описанная ошибка.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Пример с простым кодом.
Макрос:
Код
Private Sub Workbook_Open()
Application.Calculation = xlCalculationManual
Range("Таб[код]").FormulaR1C1 = _
        "=Таб[[#Эта строка];[артикул]]"
Application.Calculation = xlCalculationAutomatic
End Sub
 
Название темы должно отражать суть задачи. Сейчас - общее.
Предложите новое. Модераторы переименуют тему.
 
Код
Private Sub Workbook_Open()
Application.Calculation = xlCalculationManual
Me.Worksheets("Лист1").Range("Таб[код]").FormulaR1C1 = "=[@артикул]"
Application.Calculation = xlCalculationAutomatic
End Sub

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Та же самая ошибка.
 
Не будет реакции на сообщение №9, тему закрою.
 
vikttur, прошу прощения, что пособничал нарушителю.
Предлагаю назвать тему следующим образом:
Ошибка при заполнении столбца умной таблицы формулами посредством макроса

surkenny, подсказка:
Код
Debug.Print ActiveCell.FormulaR1C1

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
То ли я не понял, то ли ошибки нет. В Immediate window я вижу формулы данных ячеек.
Ошибки в формуле нет. В самом макросе тоже. Все прекрасно работает на 2016 excel. На 2007 выдает Run-time error '1004' Application-defined or object-defined error
 
surkenny, в 2007 синтаксис обращения в формуле к УТ другой. Поставьте 2007 портабельный и увидите. Делайте проверку на версию офиса или ВБА (точнее не подскажу) и исходя из этого используйте разные формулы.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
surkenny, Вы бы поблагодарили человека за то, что думает вместо Вас и над названием темы. А Вы вообще - хоть бы намек на то, что поняли замечание...
 
Благодарю за изменение названия темы! Впредь буду более внимательным.
Так же спасибо за все подсказки. Попробую просто записать макрос, посмотрю, чем отличаются формулы vba  
Страницы: 1
Наверх