Я разрабатываю приложение для отчетности (как интересно!) который выпускает отчеты HTML, PDF и Excel. В HTML-версии я позволил пользователю выбрать, какие столбцы им нужны, и отфильтровать остальные. Это полностью обрабатывается в браузере, поэтому все данные и HTML, сгенерированные и кэшированные для отчета xyz, одинаковы для Алисы и Боба, даже если они отображают разные столбцы в своих браузерах. Скрытые столбцы сохраняются в файле cookie, поэтому, если они переключают браузеры, они должны повторно применить эти настройки.

Я хотел бы сделать то же самое для файлов Excel. Можно ли как-нибудь сохранить этот список столбцов, чтобы спрятать их где-нибудь, например Personal.xls или где-то еще, и включить макрос в сгенерированный файл Excel, который читает список столбцов и применяет его?

(Еще лучше было бы, если бы макрос мог храниться в Personal.xls и автоматически запускаться при открытии электронных таблиц, соответствующих определенному регулярному выражению, но, возможно, это невозможно, или, возможно, это должен быть отдельный вопрос.)

Возможно ли реализовать что-либо подобное cookie в Excel?

1 ответ1

1

В макросе VBA вы можете использовать объект файловой системы для чтения и записи в файл. Пример использования этого объекта из MSDN:

Set fs = CreateObject("Scripting.FileSystemObject")
Set a = fs.CreateTextFile("c:\testfile.txt", True)
a.WriteLine("This is a test.")
a.Close

Вы можете использовать FSO для проверки наличия файла, создания или открытия его, записи в него и чтения из него.

Вы также можете хранить столбцы в отдельной книге, которая будет сгенерирована и считана из VBA без накладных расходов на код FSO, но FSO кажется более подходящим вариантом для того, что вы делаете.

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