У меня есть файл XLSM с VBA, созданный в Excel 2010 на Windows 7 Pro, и он там работает нормально, но при запуске того же файла в Windows Server 2012 он вызывает сбой Excel 2010 с общим сообщением об ошибке
«Microsoft Excel перестал работать».
Но это становится более странным ...
Что я пробовал до сих пор:
Проверенные ссылки Excelто же самое между компьютерами и ни один не помечен как отсутствующий.
Проверено: нет вызовов базы данных - существует несколько рабочих книг (одна XLSM, пара XLSX) и тонна кода, но каждый проект статичен и самодостаточен.
Используется программно Остановить миллион раз.Я объясню.
Я использовал Stop, чтобы узнать, где работает код до и где происходит сбой до, снова и снова, комментируя остановки, которые работали и не работали, добавляя новые остановки, сохраняя, покаЯ сузил точную строку кода, из-за которой происходит сбой.
Он разбился на этой строке в режиме прерывания, затем - нет, затем он не разбился на этой строке в режиме выполнения.Волшебным образом, без изменения этой линии, эти изменения произошли.Единственное, что я изменил, это выставил Стоп до и после, а затем закомментировал Остановки.
Ну, очевидно, я должен был случайно добавить или удалить код, отличный от Stops, из-за которого нарушающая строка начала нормально работать.Выполнение кода продолжалось и прекращалось на более позднем этапе, поэтому я снова старательно сузил его до одной строки, и снова он волшебным образом начал правильно выполнять эту строку и прошел весь путь до конца.Теперь сбоев нет, просто из-за добавления и комментирования Stop.Последующие пробеги тоже в порядке.Резервная копия оригинала по-прежнему вылетает в Excel.
Хотя и загадочно, но это решит проблему, кроме ...
Существует множество похожих файлов XLSM и ихПапки статических проектов на Windows Server разные, и я не могу сделать это для всех, даже если это имеет какой-то смысл, как изгоняются призраки.
Так что мне интересно, есть ли что-то, что яможно сделать с VBA, чтобы он не сталкивался с проблемой?
Что я до сих пор пробовал для этого:
Добавлено и закомментированоОстановитесь в нескольких произвольных местах (не тратя час, чтобы сузить точную строку кода).
Добавлен новый пустой модуль класса.
Скомпилировано.
Ничто из этого не остановило его сбой.Как будто мои два глазных яблока, сосредоточенные на оскорбительной линии, являются единственным решением, но это просто не имеет смысла.
Разработано на ...
Windows 7 Professional ServiceПакет 1, 64-разрядная версия Microsoft Office профессиональный плюс 2010 Excel: 14.0.7192.5000 (32-разрядная версия)
Проблемы с ...
Windows Server 2012 Standard Microsoft OfficeСтандартная версия Excel Excel 14.0.7128.5000 (32-разрядная версия)