#excel #vba
Вопрос:
У меня есть 2 отдельные книги, данные в одной из которых являются дополнительной информацией об основных элементах в другой, на каждом листе в любой из них есть лист на другом . У меня есть код VBA, который использует информацию в 1-й книге для создания листов на основе значений в листах. Вторая книга должна отслеживать истории элементов , я не могу добавлять данные в основной лист элементов, потому что у меня есть счетчики в VBA, использующие номер строк. Кроме того, если я добавлю второй лист рядом с основным листом, количество листов удвоится, и файл станет слишком большим. Есть ли способ интегрировать эти две книги в файл, чтобы я мог написать для них код VBA, и они находятся только в одном месте? Я могу использовать 2 отдельных файла вместо объединения двух книг, но есть риск, что, если пользователь захочет перенести данные, просто скопируйте основной файл и пропустите файл истории или файл истории случайно будет удален. Может быть, я слишком чувствителен к этому , Но в любом случае возможно это или нет, но знать-это хорошо. Также приветствуются любые рекомендации с VBA.
Ответ №1:
«Одна книга = один документ Excel». Полная остановка — это по замыслу.
Одна программа VBA может получить доступ к нескольким книгам одновременно, нет необходимости хранить программу в одной книге, в которой размещены обработанные данные. Вам просто нужно написать программу таким образом, чтобы вы использовали явные переменные книги и листа при доступе к диапазонам и ячейкам, не полагаясь на «активный лист» или «активную книгу».
Обучение ваших пользователей не удалять «файл истории» — это другая проблема, которую не следует смешивать с вашим вопросом. Если вы все еще хотите, чтобы все было в одном файле, вы можете дублировать все листы (например, добавив суффикс «_H» для исторических данных) и интегрировать все листы в один документ (проверьте ограничение на 30 символов в именах листов). Но тогда размер файла всегда будет (примерно) равен сумме размеров двух исходных файлов — независимо от того, как вы объединяете разные документы — очевидно, что результат будет одинаковым, если будет возможность объединить две книги в один файл.