VBA有一个子运行另一个子

问题描述 投票:5回答:4

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

worksheet1

sub endDay()
    'something here
end sub

worksheet2

sub reCalc()
    'something here
end sub

我希望recalc能够独立运行,但我希望能够按一下“ endDay”的按钮,使其起作用,然后在最后执行“重新计算”,而不是按一个,然后转到sheet2来按另一个。

有人可以给我一个样本,以便让我知道从哪里开始吗?

excel vba excel-vba excel-2003
4个回答
12
投票

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

因此,这将完成工作:

Sheet1.reCalc

7
投票
sheets("worksheet2").reCalc

可能是您追求的目标


2
投票

我知道是2年后,但今天我正在寻找相同的东西。至于工作表中的子项目可能是私有的,这是一个很好的解决方案:

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

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


1
投票
如果Sub在Module1中,则

Call Module1.reCalc应该也能正常工作。可能没有必要拥有“模块1”。完全没有。

© www.soinside.com 2019 - 2024. All rights reserved.