VBA有一个子运行另一个子

如何运行存储在另一个工作表模块中的子?

worksheet1

 sub endDay() 'something here end sub 

worksheet2

 sub reCalc() 'something here end sub 

我想recalc能够自己运行,但我想能够按下“endDay”button,让它做它的事情,然后预先形成“recalc”在结束而不是按下,然后去sheet2按另一个。

有人可以给我一个样本,所以我可以有一个想法从哪里开始?

查看工作表的代码名称 – 您可以在Visual Basic编辑器的树视图中看到它们。 通常它们被命名为Sheet1Sheet2等(独立于实际的工作表名称,括号中显示)。 在你的代码中使用这个名字)而不是Worksheets("Sheet1") ,你也会得到一个自动完成列表 – 你的子!

因此,这将完成这项工作:

 Sheet1.reCalc
 sheets("worksheet2").reCalc 

可能是你以后的事情

如果Sub在Module1中,则Call Module1.reCalc应该可以正常工作。 可能没有“Module1”。 尽pipe如此。

我知道这是2年后,但今天我正在寻找同样的事情。 至于在工作表中的潜艇可能是私人的,这是一个很好的解决scheme:

  Sub maina() Run "tbl_Input.btn_main_Click" End Sub 

tbl_Input是工作表的VBA名称,而不是标题。