Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 是否可以基于锁定的模板添加新工作簿_Excel_Vba - Fatal编程技术网

Excel 是否可以基于锁定的模板添加新工作簿

Excel 是否可以基于锁定的模板添加新工作簿,excel,vba,Excel,Vba,我有下面的VBA代码,它是一个基于模板的新工作簿 Option Explicit Public Sub AddTemplatedWB() Workbooks.Add ( _ "C:\VssBOX\Generic Projects\PMC2\template.xlsm" _ ) End Sub 除非模板已锁定,否则此操作有效。然后我会得到通常的密码提示: 单击“取消”会在VBA中显示错误: 在添加工作簿时,有没有办法直接提供密码?(这似乎特别奇怪,因为在创建

我有下面的VBA代码,它是一个基于模板的新工作簿

Option Explicit

Public Sub AddTemplatedWB()
    Workbooks.Add ( _
        "C:\VssBOX\Generic Projects\PMC2\template.xlsm" _
    )
End Sub
除非模板已锁定,否则此操作有效。然后我会得到通常的密码提示:

单击“取消”会在VBA中显示错误:

在添加工作簿时,有没有办法直接提供密码?(这似乎特别奇怪,因为在创建文件时可以提供密码。)


如果没有,是否有其他方法来实现我想要的,即根据锁定的文件在内存中创建新文件?

此代码应该适合您,因为您可以在通话过程中提供密码:

Public Sub AddTemplatedWB()
    Workbooks.Open Filename:="C:\VssBOX\Generic Projects\PMC2\template.xlsm", _
        Password:="YourPassword"
End Sub

编辑


我正在查找,但微软似乎没有提供直接的方法。可能是因为他们认为用密码锁定模板是不切实际的

我想到的一个可能的解决办法是创建一个 模板,然后打开它


不,似乎没有办法做到这一点

我最终做的是用密码将模板复制到一个临时文件中。
然后,我确保在处理完临时文件后将其删除。

否,这将打开模板。我想要一个基于模板的新工作簿。我正在查找它,但Microsoft似乎没有提供直接的方法来完成它。可能是因为他们认为用密码锁定模板是不切实际的。我想到的一个可能的解决方案是创建一个模板副本,然后打开它。你能接受我的答案吗,因为你用我的解决方案解决了这个问题?非常感谢。