Excel VBA无法使用onaction调用函数

Excel VBA无法使用onaction调用函数,vba,excel,onactionexecuting,Vba,Excel,Onactionexecuting,我在userform中为ok按钮编写了一个脚本,在工作表上创建一个delete按钮来删除整行。问题是,当我单击delete按钮时,它无法调用我指定的带有onaction参数的函数 Private Sub OKButton_Click() Dim emptyRow As Long 'Make Feuil1 Active Feuil1.Activate 'Determine emptyRow emptyRow = WorksheetFunction.Coun

我在userform中为ok按钮编写了一个脚本,在工作表上创建一个delete按钮来删除整行。问题是,当我单击delete按钮时,它无法调用我指定的带有onaction参数的函数

Private Sub OKButton_Click()
    Dim emptyRow As Long
    'Make Feuil1 Active
    Feuil1.Activate

    'Determine emptyRow
    emptyRow = WorksheetFunction.CountA(Range("C:C")) + 1

    Dim deleteButton As Button
    Dim t As Range

    Set t = ActiveSheet.Range(Cells(emptyRow, 2), Cells(emptyRow, 2))
    Set deleteButton = ActiveSheet.Buttons.Add(t.Left, t.Top, t.Width, t.Height)
    With deleteButton
        .OnAction = "DeleteLine"
        .Caption = "Delete" & emptyRow
        .Name = "DeleteButton" & emptyRow
    End With

    'Close user form
    Unload Me

End Sub

Sub DeleteLine()
    MsgBox "You Clicked Me"
End Sub

您将
DeleteLine
sub放置在何处?它应该在standart模块中,而不是在UserForm模块中。除了Unload Me,它对我有效,没有任何更改。我解决了这个问题。我认为问题在于我把DeleteLine函数放在了Userform脚本中。因此,当我单击工作表上的“删除”按钮时,它找不到该函数。为了解决这个问题,我将函数放在sheet 1的脚本中,对于按钮的onaction参数,我使用onaction=“sheet1.DeleteLine”。然后它就起作用了。它不是很漂亮,但至少它能工作。。。