Я использую шаблон Excel для создания отчета из Access с использованием VBA. При открытии вновь созданного файла форматирование номера ячейки было изменено с "Число" на "Дата".
Таблица в шаблоне имеет ячейки, отформатированные как "Число":
В эту ячейку не поступают данные из Access, они имеют формулы, которые ссылаются на другой лист в книге. После завершения экспорта данных я открываю файл Excel и вижу это:
Это единственный столбец в этой таблице, который делает это, но другие ячейки таблицы также изменяются на формат "Дата", если они содержат только цифры.
Я написал код VBA, поэтому я знаю, что это не код, изменяющий формат, и в шаблоне не определены макросы.
Я искал ответы, но ни один из них, похоже, не работает или не подходит для этой проблемы. Например, все следующие вопросы SU не дают мне ответа:
Excel - как остановить автоматическое деструктивное переформатирование полей при загрузке документа
Как настроить Excel на импорт всех столбцов CSV-файлов в текстовом формате?
Как остановить автоматическое преобразование текста в гиперссылки?
Excel 2010 иногда открывается с измененным "форматом номера"
Я хотел бы найти решение, которое не требует изменений в глобальных настройках Excel. База данных Access будет отправлена клиенту, и я не хочу, чтобы они меняли свои настройки только для этого, они также будут использовать другую версию Excel (у меня 2013)
Я пытался отформатировать некоторые ячейки с использованием VBA, одновременно передавая в них данные, но клиент хотел бы иметь возможность редактировать шаблон Excel без необходимости изменения кода VBA в базе данных; отсюда и причина переноса данных на отдельный лист, на который ссылается таблица. Если я жестко закодирую форматирование определенных ячеек, они не смогут его редактировать.
Как мне остановить Excel, изменяя форматирование?
Обновить
Я начинаю думать, что это вызвано ошибкой в Excel 2013. К сожалению, у меня нет другой версии для проверки этой теории, но изменение форматирования происходит только с тем листом, который в данный момент отображается при сохранении шаблона.
Я добавил в рабочую книгу "титульный лист", содержащий информацию об отчете. Этот лист не ссылается на какие-либо данные в других частях рабочей книги. Выбрав этот лист, я сохранил и закрыл шаблон. Отчеты, созданные с использованием этого последнего шаблона, не меняют форматирование ячеек при создании и открытии отчета.
Я теперь также заметить , что другие листы, похожие на тот , имеющее форматирование вопросов, не имеют клеток случайным образом переформатирован , поскольку они не были «активный» листом , когда шаблон был сохранен / закрыто.
Это заставляет меня думать, что это ошибка в Excel и не имеет ничего общего с моим кодом; и хотя сейчас проблема решена, я бы хотел найти решение или, по крайней мере, объяснение этого странного поведения.