Excel 如何在不知道图纸名称的情况下使用Onaction VBA命令?

Excel 如何在不知道图纸名称的情况下使用Onaction VBA命令?,excel,vba,Excel,Vba,我试图使用以下宏将vba代码指定给形状 使用代码时,我得到运行时错误438“对象不支持此属性或方法” 我的工作表编号总是会更改,因此我无法将其硬编码为下面的代码 以下是我正在使用的代码: Sub assignCodeToShape() Dim x As Integer x = getSheetNumber ActiveSheet.Shapes("fileShape").OnAction = Sheets(x) & ".CommandButton1_Click" End Sub Func

我试图使用以下宏将vba代码指定给形状

使用代码时,我得到运行时错误438“对象不支持此属性或方法”

我的工作表编号总是会更改,因此我无法将其硬编码为下面的代码

以下是我正在使用的代码:

Sub assignCodeToShape()
Dim x As Integer
x = getSheetNumber
ActiveSheet.Shapes("fileShape").OnAction = Sheets(x) & ".CommandButton1_Click"
End Sub

Function getSheetNumber as Integer()
    getSheetNumber =ActiveSheet.Index
End Function
您可以这样做:

With ActiveSheet
    .Shapes("fileShape").OnAction = .CodeName & ".CommandButton1_Click"
End With
您可以这样做:

With ActiveSheet
    .Shapes("fileShape").OnAction = .CodeName & ".CommandButton1_Click"
End With

你的意思是
纸张(x).名称
?虽然这一切都可以简化。@BigBen我怎样才能得到工作表编号,而不是工作表名称或工作表索引?例:Sheet5(“mySheet”)我希望Sheet5出现,而不是mysheetse查看发布的答案并忽略我的评论。你的意思是
Sheets(x).Name
?虽然这一切都可以简化。@BigBen我怎样才能得到工作表编号,而不是工作表名称或工作表索引?例:Sheet5(“mySheet”)我希望Sheet5出现,而不是mysheetse查看发布的答案并忽略我的评论。