【问题标题】:VBA have a sub run another subVBA有一个子运行另一个子
【发布时间】:2013-01-28 23:12:25
【问题描述】:

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

工作表1

sub endDay()
    'something here
end sub

工作表2

sub reCalc()
    'something here
end sub

我希望recalc 能够独立运行,但 我希望能够按下“endDay”的按钮,让它做它的事情,然后在最后执行“recalc”而不是按下一个,然后转到 sheet2 按下另一个。

谁能给我一个样品,让我知道从哪里开始?

【问题讨论】:

  • 我几乎在工作簿模块中完成了所有VBA - 是否必须在工作表类中隐藏代码?
  • 我使用的是 Excel 2003,它的选项有限。

标签: vba excel excel-2003


【解决方案1】:

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

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

Sheet1.reCalc

【讨论】:

    【解决方案2】:
    sheets("worksheet2").reCalc
    

    可能是你所追求的

    【讨论】:

      【解决方案3】:

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

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

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

      【讨论】:

        【解决方案4】:

        Call Module1.reCalc 如果 Sub 在 Module1 中也应该可以正常工作。可能不需要“Module1”。不过。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-06-19
          • 1970-01-01
          • 2015-11-24
          • 1970-01-01
          • 1970-01-01
          • 2012-12-28
          • 2013-07-04
          相关资源
          最近更新 更多