我正在excel中創建一個用戶表單。我已經創建了表單,我使用從 Excel 中的某個范圍讀取的串列框填充了資料。
現在我正在嘗試添加右鍵單擊串列框中的一行的功能,然后在該行資料表單上執行操作。這可能嗎?我以為是這樣,所以我打算:
- 創建自定義彈出選單
- 在右鍵單擊時在用戶表單中設定某種事件
- 其他一切。
我被困在上面的第 1 步。我首先嘗試使用 Microsoft 網站“showpopup”上的代碼創建自定義右鍵選單。
https://learn.microsoft.com/en-us/office/vba/api/office.commandbar.showpopup
Private Sub UserForm_Initialize()
Set myBar = CommandBars _
.Add(Name:="Custom", Position:=msoBarPopup, Temporary:=False)
With myBar
.Controls.Add Type:=msoControlButton, ID:=3
.Controls.Add Type:=msoControlComboBox
End With
myBar.ShowPopup
End Sub
這是我目前的代碼,我創建了一個新的用戶表單,并從 MS 的網站逐字粘貼了代碼。當我運行代碼時,我收到此錯誤:
"Run-time error: '5': Invalid procedure call or argument"
這是導致錯誤的行:
Set myBar = CommandBars _
.Add(Name:="Custom", Position:=msoBarPopup, Temporary:=False)
我不知道錯誤是什么。我在這里走錯了嗎?我只是做這整件事完全錯了嗎?
uj5u.com熱心網友回復:
錯誤的原因是 CommandBar 已經存在......在出錯的行之前,添加:
On Error Resume Next
CommandBars.Item("Custom").Delete
On Error GoTo 0
...當您的用戶表單不再使用時,您也應該真正運行相同的行來洗掉 CommandBar,也許在 Terminate 事件中
...您的代碼也立即顯示 CommandBar,您可能希望將該myBar.ShowPopup
行移至其他位置(例如,移至 ListBox 的適當事件處理程式)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/514495.html
標籤:擅长vba
上一篇:為什么excel和powerbi中同一個檔案的數量總和不同?
下一篇:R中的Vlookup與時間資料