我如何热键当前表的VBA代码?

时间:2015-08-17 20:36:30

标签: vba excel-vba excel-2013 excel

我每次点击某些内容时都会遇到0触发的问题,这是我不想要的,因为这意味着我每次点击实际工作表时都要等待。我将代码更改为Worksheet_SelectionChange(ByVal Target As Range),但这意味着每当我希望代码运行时,我都必须单击“运行”按钮。

所以我正在寻找一种只在我查看工作表时才能运行当前工作表的VBA代码的方法(而不是在我在VBA编辑器中时)。理想情况下,我可以使用Worksheet_Open将其分配给热键,但我无法弄清楚如何引用工作表的代码本身。我发现的唯一解决方案是引用外部宏,这没有用,因为我只想使用工作表中已有的代码,因为我在工作簿中为每个工作表使用不同的宏。 / p>

1 个答案:

答案 0 :(得分:1)

在您为其设置热键的模块中创建一个宏,此宏将调用您需要的宏:
CallByName ActiveSheet, ActiveSheet.Name & "Macro", VbMethod

因此,您需要在每个工作表中以SheetNameMacro的格式命名宏。

更多解释:Trying to call a Sub with a String - VBA

更新

如果您的工作表名称包含空格,请使用此:
CallByName ActiveSheet, Replace(ActiveSheet.Name," ","_") & "Macro", VbMethod
当然还要替换工作表中的空格(例如,如果您的工作表名为"列表要删除"而不是宏名称应该是list_to_deleteMacro。

相关问题