我在这里有这段代码,它周围的代码并不重要,它可以正常运行。但是,在突出显示的点上,我需要触发我指向的“ SCP Status Paynter”工作表中的代码,才能在该点以下的代码之前触发其运行。我不想只是放入另一个按钮或我只希望它触及代码中的那个点并在另一个工作表中运行代码。 Havent能够专门在Google上找到我需要的内容,因此对此不熟悉,因此我不确定该怎么做。谢谢!
答案 0 :(得分:4)
VBE的 Project Explorer 使得很难说出/猜测您打算调用什么特定程序(Rubberduck的 Code Explorer 向下钻取到过程级节点在这里会有所帮助!注意:我是这个开源项目的管理员之一,但无论如何,看来您需要调用build
文档模块中的过程。>
说您的程序如下:
Sheet1
然后从项目中的任何位置执行此操作:
Public Sub DoSomething()
' do stuff
End Sub
与您执行此操作没有什么不同
Sheet1.DoSomething
这正在调用位于标准库函数中的public / global-scope函数,其标准名称为:
MsgBox "hello, world"
现在,如果您的程序如下所示:
VBA.Interaction.MsgBox "hello, world"
然后您遇到一个问题:它是Private Sub Worksheet_Change()
' do stuff
End Sub
,它是事件处理程序。可以使事件处理程序 Private
并如上所述进行调用,但是更好的做法是将主体放入一个单独的过程中,如下所示:
Public
这样,您就不用理会事件处理程序了。工作表事件处理程序是由Excel而非用户代码调用的;这同样适用于Private Sub Worksheet_Change()
DoSomething
End Sub
Public Sub DoSomething()
' do stuff
End Sub
处理程序:它们应由CommandButton1_Click
并由MSForms库而不是用户代码调用。养成在事件处理程序之外实现逻辑的习惯(并使其成为调用逻辑),这是一种早日习得的好习惯。