У меня есть проект VBA Excel 2007, который отлично работает на моем компьютере и некоторых других, но на некоторых он обращается к ошибке 32809 в строке, которая ссылается на объект ActiveSheet. Я обнаружил, что на затронутых компьютерах объект ActiveSheet не распознается. Объект ActiveWorkbook работает нормально.Объект ActiveSheet, который не распознается на некоторых компьютерах
На пораженных компьютерах, если я создаю новую книгу, ссылку ActiveSheet и активировать затронутую книгу, объект ActiveSheet работает нормально; Я могу получить свойство Name для ActiveSheet.
На моем компьютере VBA компилируется в порядке. Но на затронутых компьютерах компиляция останавливается на строке «Option Explicit» и возвращает ошибку:
«Содержит ссылки на определения объектов, которые не были найдены». Но выбранные записи в диалоговом окне «Ссылки» выглядят нормально.
На зараженных компьютерах мы проверили обновления, но были в курсе последних событий; Я полагаю, что IT обрабатывает обновления удаленно.
Мои мысли таковы:
- странное поведение наводит на рабочей книги с коррупцией, но тот факт, что она отлично работает на некоторых компьютерах не предполагает. Все компьютеры находятся на Excel 2007 SP3.
- С другой стороны, тот факт, что он работает нормально на некоторых компьютерах, но не на других, предлагает проблему с Excel на затронутых компьютерах.
Любые идеи?
UPDATE:
Пример кода, в соответствии с просьбой:
Sub main()
Debug.Print ActiveSheet.Name
End Sub
UPDATE # 2:
Думая, что это может быть книга с коррупцией, я перестроил книгу с нуля. Но у новой книги была та же проблема.
На компьютере, где произошла ошибка, я сохранил копию файла как xlsx, без макросов. Затем я закрыл и открыл этот файл, чтобы убедиться, что макросы исчезли. Затем я скопировал все VBA из исходного файла. Затем я перерегистрировался как xlsm, с макросами.
Этот файл отлично работал на пораженном компьютере, а также отлично работал на исходном компьютере.
Однако на исходном компьютере, если я сохранил файл, а затем скопировал его на зараженный компьютер, он вернулся к исходной проблеме.
Так или иначе, это дает мне неуклюжие обходные пути. Далее я попробую статью KB 3025036 «Ошибка в вставке объекта» после установки обновления безопасности MS14-082. Не то же сообщение об ошибке, но стоит попробовать.
Проверить инструменты VBE ► Опции ► Общие ► Требовать объявление переменной. Выключите компьютеры, которые не будут компилироваться. Использование двусмысленного объявления переменной «... как Object» может запутать компилятор. – Jeeped
@Jeeped: проблема не в том, что она не будет компилироваться; это то, что я пробовал. Проблема в том, что объект ActiveSheet не распознается. –
Не это: http://blogs.technet.com/b/the_microsoft_excel_support_team_blog/archive/2014/12/11/forms-controls-stop-working-after-december-2014-updates-.aspx ?? –