2017-05-05 23 views
0

我一直在研究如何使用WScript.CreateObject(「WScript.Shell」)來爲用戶窗體上的命令按鈕創建多行,懸停5秒彈出窗口。從我可以認爲這應該工作正常,但給出了一個「變量未定義」錯誤。在調試時,它將SET行中的「WScript」突出顯示爲問題。請幫助我迷路。在Excel中使用WScript.CreateObject

Private Sub CB1604A_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) 

Dim WshShell 
Dim BTN 
Set WshShell = WScript.CreateObject("WScript.Shell") 

BTN = WshShell.PopUp("What do you want to do?", 5) 

Select Case BTN 
    Case 6 
     WScript.Echo "Do it now." 
    Case 7 
     WScript.Echo "Do it later." 
    Case -1 
     WScript.Echo "Cancel all actions?" 
End Select 

末次

回答

1

您將需要添加一個引用WScript利用其CreateObject - 但你並不需要;而是使用VBA的CreateObject創建的.Shell一個實例:

Set WshShell = CreateObject("WScript.Shell") 
BTN = WshShell.PopUp("What do you want to do?", 5) 

而且隨後使用MsgBox代替WScript.Echo

... 
MsgBox "Do it now." 
+0

我想你的建議,並有一些小問題。它創建了將近200個msgbox的時間,它讓我移動和關閉命令按鈕,並且彈出窗口永不顯示。 – Hareborn

+0

這是因爲您使用的是MouseMove事件,因此每次鼠標在控件的邊界內移動時都會觸發。如果您沒有遇到缺少的參考問題,那麼您的原始代碼也會發生同樣的情況。 –