簡體   English   中英

從Excel中的按鈕調用VBA表單

[英]calling VBA forms from a button in Excel

我有一個宏在Excel中解析一個大文件。 我創建了一個表單,允許我搜索並提供特定消息的摘要。 我可以

FormName.Show

在宏的最后,它的工作原理。 在解析宏完成時顯示表單。 但我並不總是希望表單出現,有時我想在保存電子表格后再次調用它。 所以我寫了另一個函數,可以創建一個可以打開表單的按鈕。 在.OnAction語句中,我有OnAction =“FormName.Show”

Sub Create_Button()
ActiveSheet.Buttons.Add(437.25, 72, 125.25, 47.25).Select
Selection.OnAction = "FormName.Show"
Selection.Characters.Text = "Search Messages"
End Sub

這不起作用,它創建了按鈕但是當我點擊按鈕時我得到了

“無法運行宏”xxxx.xlam'!FormName.Show'宏可能在此工作簿中不可用,或者可能禁用所有宏。

為什么它在主宏中工作但在OnAction按鈕中不起作用?

謝謝

根據MSDNShape.OnAction需要宏名稱,而不是VBA代碼。 您已嘗試將其傳遞給VBA代碼。 而是試試這個:

Selection.OnAction = "showForm"
....
End Sub

Public Sub showForm()
     FormName.Show
End Sub

.OnAction不僅會運行宏而且不會評估代碼。 將其粘貼到標准模塊中。


Sub ShowUserform()
    FormName.Show
End Sub

Sub Create_Button()
    With ActiveSheet.Buttons.Add(437.25, 72, 125.25, 47.25)
        .OnAction = "ShowUserform"
        .Characters.Text = "Search Messages"
    End With
End Sub

在此輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM