2

Я создаю макросы VBA в своей электронной таблице Excel. Я замечаю, что время от времени (обычно после сохранения и повторного открытия электронной таблицы) одно или несколько имен макросов изменяется с sheet1.macroname на spreadsheetname.xls!macroname . Это недопустимое имя макроса, поэтому я больше не могу его запускать.

Я могу решить эту проблему, удалив все макросы, сохранив результат, вставив макросы обратно и сохранив их снова, но от обычных пользователей этого ожидать нельзя.

Кто-нибудь знает, что вызывает это, и что я могу сделать, чтобы предотвратить это?

Редактировать более подробно

Когда я запускаю электронную таблицу и отображаю диалоговое окно «Макрос», кажется, что один, а иногда и больше макросов меняет свое имя с sheet1.macroname на spreadsheet.xls!macroname . Попытка запустить этот макрос двойным щелчком мыши выдает сообщение об ошибке «Недопустимое имя макроса». Если закрыть окно сообщения об ошибке и дважды щелкнуть дважды, появится сообщение об ошибке «Ссылка недействительна». Последующие попытки делают то же самое.

Вызов другого макроса sheet1.othermacro двойным щелчком по нему работает и закрывает диалог макроса. При его повторном отображении первый макрос изменил свое имя обратно на sheet1.macroname . Который решает проблему, я полагаю.

2 ответа2

2

Я нашел решение случайно.

Проблема возникает только в том случае, если имя модуля совпадает с именем макроса. Таким образом, модуль должен называться по-другому. Это оно!

1

Я подозреваю, что имя макроса на самом деле не меняется: если вы открываете диалоговое окно Макросы из Excel, когда открыто больше, чем рабочая книга, макросы, хранящиеся в текущей активной книге, отображаются как MarcoName . Однако макросы хранятся в рабочей книге, которая не активна, отображаются как WorkbookName.xls!MacroName . Тем не менее, вы уверены, что имя макроса меняется?

Когда вы говорите, что больше не можете запускать макрос, можете ли вы быть более точным о том, что именно происходит? Ничего такого? Сообщение об ошибке?

Кроме того, вы записываете эти макросы или сами пишете?

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