Excel VBA не может вызвать функцию с onaction

Я пишу сценарий для кнопки ОК в форме пользователя, чтобы создать кнопку удаления на листе, чтобы удалить всю строку. Проблема в том, что когда я нажимаю кнопку удаления, он не может вызвать функцию, которую я назначил параметром 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

person Little Tree    schedule 14.04.2014    source источник
comment
где вы размещаете свой DeleteLine саб? Он должен быть в стандартном модуле, а не в модуле UserForm   -  person Dmitry Pavliv    schedule 14.04.2014
comment
За исключением Unload Me у меня заработало без изменений.   -  person smoore4    schedule 14.04.2014
comment
Решаю проблему. Думаю, проблема в том, что я поместил функцию DeleteLine в скрипт Userform. Поэтому, когда я нажимаю кнопку удаления на листе, он не может найти функцию. Чтобы решить эту проблему, я помещаю функцию в сценарий листа 1, а для параметра onaction кнопки я использую onaction = sheet1.DeleteLine. Тогда это работает. Не очень красиво, но хоть работает ...   -  person Little Tree    schedule 15.04.2014