首页 > 解决方案 > 在形状中使用 OnAction 得到错误 1004

问题描述

我一直在搜索这个错误,但找不到解决方案,得到以下错误:

定义应用程序或对象的错误 1004

使用以下代码:

Sheets("sheet1").Shapes(shapeName).OnAction = macroName

更多信息:

Call SetButtonActive("get_quest_1", "GetQuest")

Function SetButtonActive(shapeName As String, macroName As String)
    Sheets("sheet1").Shapes(shapeName).OnAction = macroName
    Sheets("sheet1").Shapes.Range(Array(shapeName)).ShapeStyle = msoShapeStylePreset41
    With Sheets("sheet1").Shapes.Range(Array(shapeName)).Line
        .Visible = msoTrue
        .ForeColor.ObjectThemeColor = msoThemeColorText1
        .ForeColor.TintAndShade = 0
        .ForeColor.Brightness = 0
        .Transparency = 0
    End With
End Function

标签: excelvba

解决方案


应该用MacroName引号括起来,以下是有效的:

Sub TestMe()
    ThisWorkbook.Worksheets(1).Shapes(1).OnAction = "MacroName"
End Sub

Sub MacroName()
    Debug.Print "TEST"
End Sub

推荐阅读