У меня странная проблема с макросом, вызывающим сообщение об ошибке времени выполнения 1004. Макрос делает следующее:
- Создает новый рабочий лист для записи новой идеи проекта (собирает данные из пользовательской формы)
- Создает новую строку на итоговом листе для этой идеи
- Определяет именованный диапазон (с именем «IdeaTitles»), который содержит все названия идей из всех представленных идей для использования в других частях рабочей книги (списки проверки и т. д.).
- Отображает подтверждение MsgBox для пользователя
Когда я запускаю этот макрос на своем компьютере (в США), он работает безупречно — никаких сообщений об ошибках или проблем. Когда коллега из Германии запускает макрос на своем компьютере, он получает следующее сообщение об ошибке:
Ошибка выполнения "1004"
Если он нажимает кнопку «Отладка», он выделяет эту строку процедуры:
wbHopper.Names.Add Name:="IdeaTitles", RefersTo:="=OFFSET('" & wsSummary.Name & "'!$C$6,0,0," & lngCurrentIdeaRow - lngFirstIdeaRow + 1 & ",1)"
Я попросил его навести указатель мыши на каждую из переменных/объектов в этой строке, и все они имеют разумные значения. Для первой идеи lngCurrentIdeaRow = 6 и lngFirstIdeaRow = 6, что дает вам следующее:
Обратите внимание, что строка 6 — это первая строка, в которой хранятся сведения об идеях на сводном листе.
Что интересно, если он нажмет F8 в окне отладки, чтобы выполнить код, он завершится без каких-либо ошибок. Думая, что я сумасшедший, я попросил его представить несколько фиктивных идей, в которых он нажимал «Отладка», затем нажимал F5, чтобы завершить выполнение кода, и он работал без ошибок.
Любая идея о том, что может вызвать это всплывающее окно с ошибкой на его конце? Это не мешает завершению макроса, но я хотел бы очистить его, прежде чем он поделится им со своей командой.
Application.International(xlListSeparator)
- person Mathieu Guindon   schedule 18.01.2018RefersToLocal
, если бы вы использовали настройки для конкретной локали? (Итак, точно так же, как все пользователи должны использовать запятые вFormula
, но не вFormulaLocal
, я ожидал, что им придется использовать запятые вRefersTo
и использовать только точки с запятой и т. д. вRefersToLocal
.) - person YowE3K   schedule 18.01.2018