У меня есть динамический список проверки внутри шаблона excel, который показывает по умолчанию «пользователь», который выполняет файл excel, (используя формулу=INDEX(user; 1)
, пользовательname range
, у которого есть текущий» пользователь», показанный сначала.
После того, как шаблон полностью заполнен, лист копируется в новый файл и новый файл get отправляется по электронной почте.
Поскольку «пользователь» изменяется при открытии нового файла, мне нужно было вставить значения из проверки в шаблон, непосредственно перед копированием листов.
Моя идея заключается в том, что шаблон может быть очищен для повторного использования, чтобы формулы были повторно введены макросом в ячейки. Я пробовал использоватьWorksheets("template").Range("D3").Formula = "=INDEX(user; 1)"
, но я получаю runtime error 1004 application defined or object defined error
.
Пожалуйста, посоветуйте. Я представил более широкую идею, чтобы позволить альтернативные решения для цели, которую я пытаюсь достичь.
Я предлагаю сохранить книгу «шаблон excel» как настоящий шаблон Excel, используя соответствующее
FileFormat
значение (xlOpenXMLTemplateMacroEnabled
если шаблон имеет макросы илиxlOpenXMLTemplate
если у него нет макросов) .При сохранении шаблона с помощью процедуры можно использовать следующие строки:
Когда пользователь дважды щелкает шаблон книги, открывается копия книги исходного шаблона, оставляя исходный шаблон нетронутым, поэтому не будет необходимости сбрасывать формулы для повторного использования.
Если шаблон открыт с помощью процедуры, вместо doubleclick пользователя используйте эту строку:
см. раздел Сохранение книги или листа в качестве шаблона, сохранение книги в качестве шаблона