【发布时间】:2016-03-03 04:38:45
【问题描述】:
我一直在尝试执行以下操作: 在我在 Excel 2016 中构建的模板中。当模板打开时,工作簿打开事件用于从这个现在打开的模板创建一个新工作簿并将其保存为“xlsm”文件。我无法获取工作簿。添加(模板)工作。这是我迄今为止所尝试的:
将 wb 调暗为工作簿
set wb=workbooks.add(Me) 'Run-time error 1004' 应用程序定义或对象定义错误。
set wb = workbooks.add("x:\Users\name\Documents\name of template.xltm") 其中 name 是用户名,template 是从文件资源管理器复制的有效名称。 ' 运行时错误 1004...
'Set wb = Workbooks.Add(Template:="C:\Users\Ed\Documents\Custom Office Templates\Itemized_Deduction.xltm") ' 在此尝试中显示了确切的路径准确显示我在做什么。我必须在 Itemized 和 Deduction 之间使用一个 _ - 编译器不喜欢它,只有一个空格,因为它显示在文件夹中。错误是一样的。
如果 MS 能提供完整的样品示例,那肯定会有所帮助,这样我们这些优质产品的用户就可以第一时间得到它。 我去过这个网站,MS 开发人员,Office 开发人员,天知道还有什么地方,显示的一切都不起作用。
我应该使用已关闭的工作簿模板吗?
在这种情况下可以使用 XLTM 模板吗?
有人可以告诉我如何使用 .Add(template) 吗?
【问题讨论】:
-
您不应在使用相同模板创建新工作簿的模板中使用
Open Event。因此,您应该创建新工作簿...创建新工作簿以打开新工作簿...等等(不定式循环)。您的Set wb = workbooks.add("full path name here to template")代码是正确的,可能.xltm文件不在该位置。 -
编译器永远不会抱怨带引号的字符串中有空格。
-
感谢 Roy 的回复,您的观点之一是正确的。编译器将不允许程序访问打开的文件作为模板。我想出了该怎么做,并将其作为答案。