Excel 2010 - 错误:无法使用.onAction运行宏SelectCell

时间:2014-10-10 18:07:36

标签: excel vba excel-vba

我一直在寻找解决这个问题的互联网,但出于某种原因,我永远找不到与使用.onAction选择特定单元格直接相关的任何内容。

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

在循环遍历形状的部分中,脚本会为每个形状分配.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.

我是excel的VBA脚本新手所以我不知道它是否是格式化,但我知道它与这一行有关。

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

我为SelectCell创建了一个子过程,以显示作为调试发送的值。同样的错误。

我尝试让excel允许所有宏并禁用所有宏但它对错误没有影响。

如果有人知道我哪里出错或者我可以用来进一步教育自己的资源,我们将不胜感激。

2 个答案:

答案 0 :(得分:0)

这个(常规模块中的子代)对我有用。

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

答案 1 :(得分:-1)

如果我正确读到这个," SelectCell"是一个宏名称,你传入"表1"," $ C $ 10"作为参数(作为字符串)。每当您在赋值运算符(等号)的右侧进行调用时,参数都需要与父对象一起传递。例如,

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

错了,

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

是对的。

尝试一下,但是如果没有太多代码,我就无法做到。如果宏位于另一个模块中,您也可以尝试使用完全限定的宏名称。