所以我有一个工作簿,用户可以选择每周有多少个工作日。此工作簿是从模板打开的。当用户必须更改工作天数时,我希望在一周内更新模板工作表,以便下次使用模板时,用户不必再次返回该过程。为了实现这一点,我添加了一个“保存为”的代码位覆盖旧的模板。然后,我打开一个中间页,在第一本书保存好自己之后关闭它。然后,该中介基于新保存的模板打开新的工作簿。然后我想运行模板工作簿中的一个宏。然而,由于.run命令打开的是一个工作簿而不是一个模板,我不能使用它。还有别的路吗?或者有没有一种方法可以同时打开模板并使用run命令?
ActiveWorkbook.SaveAs "Y:\RUN ORDER\TEMPLATES\POSITION TEMPLATE.XLSM", FileFormat:=52
Application.Run "'Y:\RUN ORDER\TEMPLATES\TEMP P+T.XLSM'!MIDDLEMAN"
End Sub
上面的代码来自第一个模板表,因为它正在保存自己,然后在中间表中运行sub
下面的代码是我在中介表中的代码
Sub MIDDLEMAN()
Windows("POSITION TEMPLATE.XLSM").Activate
Application.DisplayAlerts = False
ActiveWorkbook.Close SaveChanges:=True
Application.DisplayAlerts = True
Workbooks.Add TEMPLATE:="Y:\RUN ORDER\TEMPLATES\POSITION TEMPLATE.xlsm"
Application.Run "'Y:\RUN ORDER\TEMPLATES\POSITION TEMPLATE1'!TRANSFERDATES"
End Sub
显然,当中间人子福尔斯试图运行宏时,它会失败,因为它找不到名为position template1的工作表,因为它没有被保存,因此不存在。position template1是指定给从模板创建的工作簿的名称。我也试
application.run template:="'Y:\RUN ORDER\TEMPLATES\POSITION TEMPLATE1'!TRANSFERDATES"
但它在模板部分出现错误,说未找到命名参数。
任何帮助都将不胜感激
1条答案
按热度按时间rqdpfwrv1#
我仍然不知道我是否正确地遵循了所有的逻辑,但像这样的东西可能是你想要的:
第一步:
第二步:
第三步:
第四步: