EvMNU 语法
EvMNU(MacroName,DisplayName,Parameter)
位置:
MacroName 是由“计划与合并”提供的菜单命令,例如 OPENFILE、SETCV 和 MNU_eSUBMIT。
DisplayName 是用户点击以启动菜单任务的文本。显示名称为可选。
参数是宏参数。某些宏需要诸如文件名称或成员名称等信息才能正常运行。
示例:
将当前视图设置为特定维度的特定成员。在此示例中没有显示的名称。
EvMNU(“SETCV”,,”ENTITY=SalesUS;TIME=2004.JAN”)
创建一个名为〖分析〗的超链接,可以打开
A01Entity.xls
工作簿:EvMNU("OPENFILE","Analysis",,"/REPORTS/WIZARD/Reports/Wizard/Local/Analysis/A01Entity.xlt")
使用 & 运算符将多个 EvMNU 函数串联在一起。您可以按如下方式为您正在打开的文件设置当前视图:
=EVMNU("SETCV",,"CATEGORY=PLAN;TIME=2005.Q4")&EVMNU("OPENFILE","open file","/REPORTS/WIZARD/Local/Analysis/A01Entity.xlt")
大多数“计划与合并”命令都以前缀 MNU_ 开头。但是,以下命令也可以使用:
OPENFILE
打开一个本地文件。
缺省为“
C:/Documents and Settings/<Local user>/My Documents/PC_NW/<Logon user>/AppInfo/<appset>/<app>/eExcel
”目录,除非定义了完整路径。EvMNU(OPENFILE,”optional text”,{path})
例如,
evMNU(“OPENFILE”,,"c:/Documents and Settings/<Local user>/My Documents/PC_NW/<Logon user>/AppInfo/<appset>/<app>/eExcel")
CLOSEEXCEL
关闭 Microsoft Excel。
EvMNU(CLOSEEXCEL,,)
OPENWEBFOLDER
打开
/<appset/<app>/eExcel
文件夹。您不能更改缺省路径。EvMNU(OPENWEBFOLDER,”optional text”)
SETCV
设置当前视图。
EvMNU(SETCV,,dimension=member)
EVMNU的使用方法是在EXCEL中的单元格内输入=EvMNU(MacroName,DisplayName,Parameter) ,然后双击或单击单元格就会执行MacroName对应的宏.
另外一种使用菜单命令的方法是,拖一个表单按钮到excel中,然后为按钮指定宏为MNU_eXXXX_XXXXX,这样点击按钮MNU菜单命令就会被执行.
有的时候我们可能会需要在VBA中调用MNU菜单命令,比如先进行一些针对单元格的校验然后再执行发送数据命令,这种情况下,我们需要在VBA代码中输入语句Application.Run "mnu_{command}".
如调用BUDGET2COST脚本:
Application.Run "MNU_eData_SELECTPACKAGE", "BUDGET2COST", "/CPMB/DEFAULT_FORMULAS", "company", "Data Management"
BPC还提供了几个事件函数,类似于MFC中的事件响应函数:
解决方案提供了以下 VBA 函数,用于执行 MNU 命令之前或之后的命令:
BEFORE_CHANGECVW
您可以使用 BEFORE_CHANGECVW 函数在更改当前视图前执行定制操作。
Option Explicit
Function BEFORE_CHANGECVW(Argument As String)
'Process content
MsgBox Argument
BEFORE_CHANGECVW = True
End Function
AFTER_CHANGECVW
您可以使用 AFTER_CHANGECVW 函数在更改当前视图后执行定制操作。
Function AFTER_CHANGECVW(Argument As String)
MsgBox Argument
AFTER_CHANGECVW = True
End Function
BEFORE_REFRESH
您可以使用 BEFORE_REFRESH 函数在用户更改当前视图后执行定制操作。
Function BEFORE_REFRESH(Argument As String)
MsgBox Argument
BEFORE_REFRESH = True
End Function
AFTER_REFRESH
您可以使用 AFTER_REFRESH 函数在 Excel 界面刷新数据后执行定制操作。
Function AFTER_REFRESH(Argument As String)
MsgBox Argument
AFTER_REFRESH = True
End Function
BEFORE_SEND
您可以使用 BEFORE_SEND 函数在 Excel 界面发送数据前执行定制操作。
Function BEFORE_SEND(Argument As String)
MsgBox Argument
BEFORE_SEND = True
End Function
AFTER_SEND
您可以使用 AFTER_SEND 函数在 Excel 界面发送数据后执行定制操作。
<