excel 是否可以从模板工作表运行子程序?如果是,怎么做?

bq3bfh9z  于 2023-10-22  发布在  其他
关注(0)|答案(1)|浏览(144)

所以我有一个工作簿,用户可以选择每周有多少个工作日。此工作簿是从模板打开的。当用户必须更改工作天数时,我希望在一周内更新模板工作表,以便下次使用模板时,用户不必再次返回该过程。为了实现这一点,我添加了一个“保存为”的代码位覆盖旧的模板。然后,我打开一个中间页,在第一本书保存好自己之后关闭它。然后,该中介基于新保存的模板打开新的工作簿。然后我想运行模板工作簿中的一个宏。然而,由于.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"

但它在模板部分出现错误,说未找到命名参数。
任何帮助都将不胜感激

rqdpfwrv

rqdpfwrv1#

我仍然不知道我是否正确地遵循了所有的逻辑,但像这样的东西可能是你想要的:
第一步:

'Workbook1 opens the template file to choose dates
Sub copyTemplate()
    Application.DisplayAlerts = False 'for the overwriting prompt
    ActiveWorkbook.SaveAs "Y:\RUN ORDER\TEMPLATES\POSITION TEMPLATE.XLSM", FileFormat:=52
    Application.DisplayAlerts = True
    Workbooks.Open "Y:\RUN ORDER\TEMPLATES\TEMP P+T.XLSM"
End Sub

第二步:

'Workbook2 -template, has button to finish up after date-picking
Sub button1_Click()
    'finishing up, overwrites or saveas main template for that person
    'your pick
    'closes itself
End Sub

第三步:

'Workbook1
Sub openTemplate()
    'opens the new and improved template
    'assign this to another button? Again, your choice
    'run the copy-date-macro in the new and improved workbook2
End Sub

第四步:

'Better_Workbook2
'this could technically be done together with step3 unless there's some more logic 
'as to why the user has to start the calculations
Sub button2_Click()
    'calculation and creation of workbook4
    'closes itself without saving
End Sub

相关问题