Мой работодатель недавно обновил с
Excel 2013 (15.0.4805.1001) MSO (15.0.4919.1002) до Excel для Office 365 MSO (16.0.11328.20362) 32-разрядный
Нет активных надстроек (кроме указанных ниже при загрузке).
Созданная мной надстройка Excel (xlam) больше не работает правильно.
Надстройка Он работает с открытой рабочей книгой и форматирует много «сырых» данных в виде таблиц (списков объектов), а также создает несколько сводных таблиц и диаграмм в макете в виде панели управления. В ходе этого процесса некоторые пустые листы копируются из надстройки в открытую книгу и переименовываются по мере необходимости.
В большинстве случаев все работает нормально (созданы сводные таблицы, создана панель мониторинга). В конце процесса я создаю индексный лист, копируя пустой лист из надстройки и переименовывая его (как ... индекс). Вот где что-то не так. Excel, казалось, просто «завис». В ходе расследования я обнаружил, что лист не был переименован (поэтому дальнейшая обработка остановлена).
Более подробное описание этого процесса с отключенным перехватом ошибок. Если я пытаюсь переименовать лист, используя непосредственное окно, я получаю
ошибка времени выполнения 7 Недостаточно памяти
Далее, если я вручную переименую лист (интерфейс Excel), а затем установлю код, выполняющийся с этой точки, я обнаружил, что не могу использовать свойство CurrentRegion
(некоторая сортировка выполняется на недавно вставленный лист). Любая попытка использования CurrentRegion
приводит к
Невозможно получить свойство CurrentRegion класса диапазона
Это также относится к использованию непосредственного окна на ЛЮБОЙ открытой книге ( например, ?Activesheet.range("A1").CurrentRegion.Rows.Count)
Эти ошибки сохраняются во время текущего сеанса Excel (то есть я могу создать пустую книгу и попытаться переименовать лист с помощью VBA, но получаю ошибку; ручное переименование вкладки - это нормально). Если я перезапущу Excel, то все в порядке.
Мне нужно использовать некоторые глобальные переменные / publi c, но (учитывая, что все работает в Excel 2013) не вижу, что это будет проблемой.
Есть идеи?