Скопируйте лист Excel вместе с кодом модуля в новую книгу

Я пытаюсь скопировать лист из одного файла в другой и получить вместе с ним VBA. В исходном листе есть формулы, основанные на UDF. Они расположены в модуле в книге исходников.

Когда я копирую лист, модуль не приходит в конечный файл, как и код. Поэтому я попытался поместить код на лист исходного файла. Теперь код действительно появляется, но UDF не работает. Я получаю (я думаю) #ИМЯ? ошибки или что-то в этом роде. Я должен упомянуть, что эти UDF перебирают вкладки в книге, если это уместно. Правильно ли звучит, что в этом случае код уровня листа не будет работать? Раньше я никогда не ставил VBA нигде, кроме модулей.

Если листовой код не будет работать, я застрял с модулем. Я понимаю, что могу экспортировать Module1 из исходного файла, а затем импортировать в место назначения. Исходный модуль никогда не должен меняться, поэтому я могу сделать это только один раз. Это звучит как самое безболезненное решение?

Я стараюсь избегать макросов, если только они не короткие и простые. В отличие от исходного файла, который не меняется, имя конечного файла меняется ежедневно, т.е. каждый раз, когда он открывается, ему необходимо получать модуль (и лист). Это звучит выполнимо?


person Robert Bursey    schedule 15.09.2017    source источник
comment
следует упомянуть, что эти пользовательские функции перебирают вкладки в книге Ну, это зависит от того, как вы кодируете эту итерацию. Если имена листов жестко закодированы в итерациях, вполне возможно, что они сломаются.   -  person Luuklag    schedule 15.09.2017
comment
Является ли книга, которую вы копируете, новой книгой? Если это так, вы можете создать рабочую книгу шаблона, уже содержащую модуль, и каждый раз копировать в нее листы. Если эта ссылка не делает то, что вам нужно: stackoverflow.com/questions/40947736/ (в этом случае этот вопрос является дубликатом).   -  person Darren Bartrup-Cook    schedule 15.09.2017
comment
Спасибо за идеи. В конце концов, я пошел по простому пути и скопировал листы в рабочую книгу, в которой были пользовательские функции. Я думал, что это будет сложнее, поскольку таких листов может быть до 20, а не один, если бы я скопировал другим способом. Но это было удивительно быстро, я думаю, потому что каждый лист относительно мал. Я думаю, что это очень удовлетворительное решение, так что большое спасибо   -  person Robert Bursey    schedule 21.09.2017