我在Excel模板中有一个动态验证列表,默认显示运行excel文件的“user”(使用公式=INDEX(user; 1)
,用户是{{ 1}}首先显示当前“user”。
模板完全填满后,工作表将被复制到新文件中,新文件将通过电子邮件发送。
因为“user”在新文件打开时发生了变化,所以我需要在复制工作表之前将验证中的值粘贴到模板中。
我的想法是因为模板可以被清除以便重复使用,以便将公式重新输入到单元格中。我尝试使用name range
,但我得到了Worksheets("template").Range("D3").Formula = "=INDEX(user; 1)"
。
请指教。我提出了更广泛的想法,以便为我正在努力实现的目的提供替代解决方案。
答案 0 :(得分:0)
我建议使用适当的FileFormat
值( {将“Excel模板”工作簿保存为真实Excel模板 {1}} 如果模板有宏或 xlOpenXMLTemplateMacroEnabled
,如果它没有宏)。
如果使用程序保存模板,您可以使用以下行:
xlOpenXMLTemplate
当用户双击工作簿模板时,会打开原始模板工作簿的副本,原始模板保持不变,因此无需重置公式以便重复使用。
如果通过程序打开模板,而不是用户的双击,则使用以下行:
ActiveWorkbook.SaveAs _
Filename:="Workbook FullName.xltm", _
FileFormat:=xlOpenXMLTemplateMacroEnabled, _
Password:="If Required", WriteResPassword:="If Required", _
ReadOnlyRecommended:=False, CreateBackup:=False
Rem Replace these lines if template has no macros
'Filename:="Workbook FullName.xltx", _
'FileFormat:=xlOpenXMLTemplate, _
请参阅Save a workbook or worksheet as a template,Save a workbook as a template