【问题标题】:What is the entry point of an .xlam excel addin.xlam excel 插件的入口点是什么
【发布时间】:2013-04-10 15:43:52
【问题描述】:

我正在做一些关于 excel addIn abc.xlam 的工作。 此插件在 excel 插件中启用。 每当我在 excel 中打开工作表(新的或现有的)时,我都想启动一个 .exe 文件。 我想在打开工作簿时在 .xlam 插件中对这个 .exe 启动部分进行编码。 请告诉我我该怎么做?

【问题讨论】:

    标签: vba excel excel-2010


    【解决方案1】:

    您需要访问 Excel 应用程序的 NewWorkbook 事件,因此您需要在加载插件时设置对 Application 对象的引用。

    将以下示例代码放入ThisWorkbook 模块中:

    Option Explicit    '***** Always use Option Explicit!
    
    Private WithEvents oXl As Application
    
    
    Private Sub oXl_NewWorkbook(ByVal Wb As Workbook)
        '***** Trapping the NewWorkbook event
        Call MsgBox("It's me again. (" & oXl.Workbooks.Count & ")", vbInformation, "Hi. Again.")
    
        '***** Your code here!
    End Sub
    
    
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
        '***** Remove reference to oXL object
        Set oXl = Nothing
    End Sub
    
    
    Private Sub Workbook_Open()
        '***** Set reference to the current Excel application
        Set oXl = ThisWorkbook.Application
    
        '***** Testing the oXL object
        Call MsgBox("Hello, there! (" & oXl.Workbooks.Count & ")", vbInformation, "Hi")
    End Sub
    

    【讨论】:

    • 我不知道我有什么问题,这些事件永远不会受到打击!对不起,我是 VBA 的新手
    • 你加载插件了吗?我在加载插件后立即收到Workbook_Open 事件。 NewWorkbook 事件也有效。
    • 总是加载插件。就像我不必每次都加载它一样
    • 好的,那么您应该在启动 Excel 时收到 Workbook_Open 事件。我必须卸载插件才能更改它的 VBA 代码(然后重新加载)。
    • @HamdaBinteAjmal 您是把这些宏放在Workbook 代码模块还是标准代码模块中?后者是行不通的,这将是他们没有为你“命中”的最常见原因。
    【解决方案2】:

    好的,我做到了! 我只是在现有宏中创建了一个新函数

    Private Sub MyMacro 
     MsgBox "HI" 
    End Sub
    

    然后,我从 ThisWorkbook 调用了这个函数

     Private Sub Workbook_Open()
     Run "MyMacro"
     Exit Sub
    

    【讨论】:

    • 好的,太好了。如果您将MsgBox "HI" 移动到Workbook_Open,您可以从另一个答案中获得我的示例。 :) 现在您需要捕获NewWorkbook 事件。重新阅读您的问题,您还需要来自 Application 对象的 WorkbookOpen 事件,以便在打开新工作簿和现有工作簿时运行代码。工作表可能有类似的事件 - WorkbookNewSheetSheetActivate?
    猜你喜欢
    • 1970-01-01
    • 2021-10-30
    • 1970-01-01
    • 1970-01-01
    • 2015-12-24
    • 1970-01-01
    • 2015-11-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多