gpt4 book ai didi

excel - 从工作表代码中引用添加全局变量

转载 作者:行者123 更新时间:2023-12-02 16:54:39 28 4
gpt4 key购买 nike

我正在构建一个 Excel 插件,它在子组件中声明一些公共(public)变量。首次使用插件时,它会从插件复制一些工作表(ThisWorkBook)到用户的工作簿 (ActiveWorkBook)。这些工作表中有一些工作表事件子项。

问题:ActiveWorkBook 工作表事件子需要引用 ThisWorkBoook 中定义的公共(public)变量,但似乎找不到它们。我想是因为它们位于不同的工作簿中。但在这种加载项的情况下,肯定有某种方法可以做到这一点吗?

具体示例:模块Module1中的GlobalAddin.xlam声明

Option Explicit
Public TestMe As Integer

然后

Public Sub RunSub()
TestMe = 10
MsgBox "The Addin says that TestMe is " & TestMe
End Sub

并且 RunSub 是从 ThisWorkBook._Open() 事件中调用的。

GlobalAddin.xlam 已成为事件插件。现在,在 Sheet1 中的另一个工作簿 Book2.xlm 中,我们已经

Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
MsgBox "The Worksheet says TestMe is " & TestMe
End Sub

现在打开 Book2.xlm。对话框报告 TestMe 的值为 10(这来自 xlam workbook_open,甚至调用 RunSub。)但是单击 Book2 中的 Sheet1 会导致变量未定义错误,表示 TestMe 未定义。

所以这是有道理的,但是我如何访问 Book2 中工作表事件中 TestMe 的值?

(编辑:我想我可以通过 ActiveWorkBook 中的(隐藏)工作表传递变量,但这似乎有点笨拙。有更好的方法吗?)

最佳答案

你不能做以下事情吗?

  1. 创建一个具有在模块中声明的字段的插件。

    公开 TestMe 作为整数

  2. 同时在同一个插件模块中声明一个公共(public)函数来获取字段值。

    公共(public)函数 GetTestMe() 作为整数获取测试我 = 测试我结束函数

  3. 现在,在同一 Excel 应用程序中的任何其他工作簿中,后期绑定(bind)调用以获取值。

    公共(public)子 TestAddinCall()将 x 调暗为整数x = Application.run("GetTestMe")结束子

这显然是后期绑定(bind),但可能是最简单的方法。

关于excel - 从工作表代码中引用添加全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29949297/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com