VBA如何运行另一个子程序

7
如何在另一个工作表的模块中运行存储的子程序? 工作表1
sub endDay()
    'something here
end sub

worksheet2

sub reCalc()
    'something here
end sub

我希望recalc能够自主运行,但我想按下“endDay”按钮后,它可以完成其任务,然后在最后执行“recalc”,而不是按下一个按钮,然后转到sheet2再按下另一个按钮。

有人能给我提供一个样例,让我知道从哪里开始吗?


1
我几乎所有的 VBA 都在工作簿模块中完成 - 在工作表类中隐藏代码是否必要? - whytheq
我正在使用Excel 2003,它的选项有限。 - Stephan Daudt
4个回答

15
请查看工作表的代码名称 - 您可以在Visual Basic编辑器的树视图中看到它们。通常它们被命名为Sheet1Sheet2等(与实际工作表名称无关,在括号中显示)。在您的代码中使用此名称,而不是Worksheets("Sheet1"),您还将获得自动完成列表-以及您的子程序!因此,这将完成工作:
Sheet1.reCalc

8
sheets("worksheet2").reCalc

也许这就是您需要的内容。

2

我知道这已经是两年后的事情了,但今天我在寻找同样的东西。就工作表中的子文件而言,它们可能是私有的,这是一个不错的解决方案:

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

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


1
如果Sub在Module1中,Call Module1.reCalc也应该有效。不过,可能没有必要加上'Module1.'。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接