Excel VBA无法使用onaction调用函数
我在userform中为ok按钮编写了一个脚本,在工作表上创建一个delete按钮来删除整行。问题是,当我单击delete按钮时,它无法调用我指定的带有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
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”。然后它就起作用了。它不是很漂亮,但至少它能工作。。。