0

我正在尝试调用一个子(OnAction)并从工具栏控件传递一个参数,但我似乎无法调用它,因为我不断收到“无法运行宏。宏可能不可用”。

控件位于工作簿中,功能位于模块中。

Option Explicit

Sub somefunction(Optional ServerType As String) End Sub

这是控件的代码:

With ToolsMenuControl

    .Caption = "some caption"
    .OnAction = "'" & ThisWorkbook.Name & "'!someFunction ""Wintel""'"
    .Tag = C_TAG

End With

请指教。

4

2 回答 2

1

似乎正确的.OnAction property分配取决于文件是否保存。因此,下面给出了可能的语法:

    If ThisWorkbook.Saved Then
        'when your file is saved
        .OnAction = "'" & ThisWorkbook.Name & "'!'somefunction ""Saved""'"
    Else
        'when file is not saved
        .OnAction = ThisWorkbook.Name & "!'somefunction ""Not Saved""'"
    End If
于 2013-08-08T09:47:26.733 回答
0
  1. Excel 用于Path!Reference引用单元格或宏。Path 可以是 FileName 或 FullPath,(以及用于单元格引用的 SheetName)。引用可以引用单元格地址,或者带有参数的宏。
  2. 对于路径和引用,如果它包含特殊字符,请用撇号(') 括起来。
    • 路径,例如:Book1.xlsx'C:\Users\Me\My Book.xlsx'. @KazJaw,在引用未保存/打开/关闭的文件时,文件命名和路径会有所不同。
    • 参考例如:mySub'someFunction "Wintel" '。为便于阅读而留下的额外空格,被解释器截断。
  3. VB 中的字符串用引号 (" ") 括起来。在字符串中嵌入引号/撇号的推荐方法是加倍使用的引号。例如
    • 用来'He''s good'表示He's good
    • "Am ""I"" fine?"翻译成Am "I" fine?
  4. 用VB编写,.OnAction = "'" & ThisWorkbook.Name & "'!'someFunction ""Wintel"" ' ".
于 2015-02-25T08:12:13.527 回答