使用另一个工作簿中的用户表单

我有一个受我公司保护的加载项。 我的目标是编写一些VBA来自动化加载项的大部分点击操作。 其中的大部分代码都围绕着input到用户表单中,所以我现在所使用的方法是编写代码来处理这些用户表单,而不是重写他们的代码来不使用用户表单。

加载macros在打开用户表单的模块之一中有一个macros。 所以我只是用它来打开用户窗体,这不是问题。 但是,如何访问用户表单中的函数呢? 我需要这样做来模拟用户窗体上的点击。

您可以使用您在上面的注释中提到的格式访问用户表单中的function。 为了提供完整的答案,即:

WorkbookName.FormName.FunctionName 

然而,为了这个工作,关注的function必须在其自己的代码中声明为公开的。 一个例子:

 Public Function ExampleF(Param1 As Integer) ' Function code End Function 

如果您希望从用户表单外部设置Param1 ,则可以使用FormName.ExampleF(123)格式。

这将设置Param1 = 123 ,你的函数可以继续使用这个值的代码。

不幸的是,如果您正在尝试访问的用户表单没有将其function声明为公共,那么恐怕他们只能通过表单本身进行访问,而且您可以做的其他function也不多。

你最好的希望就是试图彻底改写加载项,或者为了公开function而要求不加保护。