【问题标题】:VBA two buttons calling one SubVBA 两个按钮调用一个 Sub
【发布时间】:2021-03-08 20:43:27
【问题描述】:

我在一个 Excel 文件中有两个统计表。他们的名字是 OO 和 XX。

我有单独的子程序来导出和导入 OO 和 XX。那就是:

1.Sub OO-export()
'do output data from OO sheet
End Sub

2.Sub XX-export()
'do output data from XX sheet
End Sub

3.Sub OO-import()
'Import Data to OO sheet
End Sub

4.Sub XX-import()
'Import Data to XX sheet
End Sub

两个导入子例程都包含非常相似的代码,两个导出子例程都包含非常相似的代码。

我想将 OO-/XX 特定的子例程重构为更通用的导入和导出子例程,例如TT 导入和 TT 导出。

通用子程序会根据用户单击的按钮有条件地处理 OO 或 XX,例如OO 按钮或 XX 按钮。

如何创建可以根据单击的按钮处理正确表的通用子例程?给我一些提示

【问题讨论】:

  • 没有任何代码我不确定是否有人可以帮助你。

标签: excel vba button


【解决方案1】:

您可以创建 2 个带参数的主潜艇。然后 4 个小的其他子可以访问主子,提供将在该主子中使用的参数。

Sub sub_A1()
  Call A("A1")
End Sub

Sub sub_A2()
  Call A("A2")
End Sub

Sub sub_B1()
  Call B("B1")
End Sub

Sub sub_B2()
  Call B("B2")
End Sub

Sub A(argument As String)
  MsgBox "Sub A was called by clicking button " & argument
End Sub

Sub B(argument As String)
  MsgBox "Sub B was called by clicking button " & argument
End Sub

这里的AB 是主子,它们被较小的子引用。只有较小的潜艇链接到按钮。当您单击按钮A1A2 时,最初会访问sub_A1sub_A2,但它们只会将参数发送到主函数A,在那里您可以使用该参数做任何您想做的事情。在这种情况下,sub A 只是打印它收到的内容。

【讨论】:

  • 请注意,String 参数只是一个示例。它可以是任何类型,甚至是对 Worksheet 的引用。
  • 如果答案有助于解决问题,请检查答案旁边的 ✓ 符号。
猜你喜欢
  • 1970-01-01
  • 2015-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多