Excel 2010 – 错误:无法使用.onAction运行macrosSelectCell

我一直在寻找解决这个问题的networking,但由于某种原因,我永远无法find任何与使用.onActionselect特定单元格直接相关的任何东西。

我正在用另一个问题的答案作为参考:

  • https://stackoverflow.com/a/18199035

在循环形状的部分,脚本为每个形状分配一个.onAction事件。 每当这在Excel 2010中运行,我得到的错误:

Cannot run the macro "SelectCell "Sheet 1","$C$10"". The macro may not be available in this workbook or all macros may be disabled. 

我是新的VBA脚本为Excel,所以我不知道是否是格式,但我知道这是相关的这一行。

 .OnAction = "'SelectCell """ & ws.Name & """,""" & cll.Address & """'" 

我为SelectCell创build了一个子程序来显示作为debugging发送的值。 同样的错误。

我试图让Excel允许所有的macros,并禁用所有的macros,但它没有对错误的影响。

如果任何人有任何想法,我可能会错误或任何资源,我可以用来进一步教育自己,这将不胜感激。

这(在一个普通模块中的两个子)都适用于我。

 Sub SelectCell(sht As String, rng As String) ThisWorkbook.Sheets(sht).Range(rng).Select End Sub Sub Assign() ActiveSheet.Shapes(1).OnAction = "'SelectCell """ & _ Selection.Parent.Name & """, """ & _ Selection.Address() & """'" End Sub 

如果SelectCell在表单代码模块中,则需要包含表单代码名称:

 Sub Assign() ActiveSheet.Shapes(1).OnAction = "'Sheet1.SelectCell """ & _ Selection.Parent.Name & """, """ & _ Selection.Address() & """'" End Sub 

如果我正在阅读这个权限,“SelectCell”是一个macros名称,并且传入“Sheet 1”,“$ C $ 10”作为参数(作为string)。 无论何时在赋值运算符(等号)的右侧进行调用,都需要使用父项来传递参数。 例如,

 .OnAction = "SelectCell "Sheet 1","$C$10"" 

是错的,而且

 .OnAction = "SelectCell ("Sheet 1","$C$10")" 

是对的。

尝试一下,但是没有太多的代码我就没有太多的东西了。 如果macros在另一个模块中,您也可以尝试使用完全限定的macros名称。