保存模板时触发Workbook_BeforeSave的宏?

2020-09-12 10:18发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好。 关于VBA和BPC,我有一个非常基本的问题。 将BPC模板保存到服务器时,VBA事件 Workbook_BeforeSave()似乎不起作用。 我知道服务器上的 Workbook_Open()事件也存在类似的问题,并且可以创建常规宏 after_workbook_open()。

有人知道 BeforeSave 是否也有类似的东西吗? 我尝试了 before_workbook_save(),但未成功。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好。 关于VBA和BPC,我有一个非常基本的问题。 将BPC模板保存到服务器时,VBA事件 Workbook_BeforeSave()似乎不起作用。 我知道服务器上的 Workbook_Open()事件也存在类似的问题,并且可以创建常规宏 after_workbook_open()。

有人知道 BeforeSave 是否也有类似的东西吗? 我尝试了 before_workbook_save(),但未成功。

付费偷看设置
发送
4条回答
SC_Yao
1楼 · 2020-09-12 10:59.采纳回答

不幸的是,保存到服务器文件夹时没有触发任何事件。 您可以使用SaveToServerRootFolder使用宏创建自己的按钮。 在此宏中,您可以插入所需的代码(但即使在这种情况下,如果用户按"取消",它也将无法正确执行)

Nir深蓝
2楼-- · 2020-09-12 10:54

谢谢。 我讨厌接受" NOPE "的答案! 但是,如果正确,则...被接受。

不确定BPC开发人员是否阅读这些板,但是.....

亲爱的SAP ...

有一个工作簿_要注意 事件将是一个有价值的功能。 更改模板时,管理员通常会忘记执行某些操作来重置模板(正确设置上下文成员,具有空白模板等)。 为了解决这个问题,许多开发人员,例如我自己,都会创建某种reset_macro。 这样可以节省时间,并确保管理员不会忘记任何步骤。


但是,如果没有WORKBOOK_BEFORESAVE事件,则需要管理员记住在保存模板之前运行此宏。 通常,管理员确实会记住,但是如果他们忘记了意义,那么结果可能是有意义的(显示薪水的HR模板!)。

先生。 Kalinin的建议给出了不错的选择,但仍然需要管理员记住在保存模板时执行宏。

希望有用。
��

软件心理学工程师
3楼-- · 2020-09-12 11:12
< p>对我来说很奇怪,为什么没有触发标准事件Workbook_BeforeSave ...

示例:

 Private Sub Workbook_BeforeSave(ByVal SaveAsUI为布尔值,取消为布尔值)
 ThisWorkbook.Worksheets(" Sheet1")。Range(" A1")。Value = CStr(Now())
 结束Sub 

如果我执行如下宏:

 Public Sub Save1()
 ThisWorkbook.SaveAs" C:\ Users \ KalininVE \ Desktop save.xlsm"
 结束Sub 

然后标准事件将起作用...

看起来EPM代码正在执行以下操作:

公共Sub Save1()
 Application.EnableEvents = False
 ThisWorkbook.SaveAs" C:\ Users \ KalininVE \ Desktop save.xlsm"
 Application.EnableEvents = True
 结束Sub 

P.S。

即使禁用了事件,仍可以使用Application.Run执行Workbook_BeforeSave:

公共Sub SaveProc()
 Application.EnableEvents = False
 Application.Run" ThisWorkbook.Workbook_BeforeSave",错误,错误
 Application.DisplayAlerts = False
 ThisWorkbook.SaveAs" C:\ Users \ KalininVE \ Desktop save.xlsm"
 Application.EnableEvents = True
 Application.DisplayAlerts = True
 结束Sub 
歪着头看世界
4楼-- · 2020-09-12 11:04

您好史蒂芬·里德

我正在谈论执行保存到服务器的可能的EPM代码。

2个选项:

1。 不要禁用事件。

2。 如果出于某种原因(不知道为什么)需要禁用事件,则至少使用Application直接调用BeforeSave。运行

当前未使用任何选项

一周热门 更多>

点击此处---> EasySAP.com 一起学习S4 HANA ...

相关问答