-1
我在VBScript中編寫了一個Excel,其操作方式顯示在Excel工作表的左下角,其工作正常,但問題在於相同的操作也顯示在其他Excel中打開的表單,但與我的操作正在執行的Excel表單無關。更改狀態欄的更新行爲
我怎樣才能避免其他Excel工作表將顯示相同的動作?
我在VBScript中編寫了一個Excel,其操作方式顯示在Excel工作表的左下角,其工作正常,但問題在於相同的操作也顯示在其他Excel中打開的表單,但與我的操作正在執行的Excel表單無關。更改狀態欄的更新行爲
我怎樣才能避免其他Excel工作表將顯示相同的動作?
問題是StatusBar是全局的,並不是每個工作簿都特定的。
但是,您可以使用Workbook_Activate
和Workbook_Deactivate
事件避免該問題。將以下代碼放入工作簿的ThisWorkbook
模塊中:
Private mVarOldStatusBar As Variant
Private Sub Workbook_Deactivate()
mVarOldStatusBar = Application.StatusBar
Application.StatusBar = False
End Sub
Private Sub Workbook_Activate()
If mVarOldStatusBar <> "" Then _
Application.StatusBar = mVarOldStatusBar
End Sub
我假設您指的是StatusBar文本。如果是這樣,這是一個應用程序實例控件;您必須打開一個新的Excel實例(不只是另一個工作簿)才能擁有另一個StatusBar。 –
附加一個鏈接爲您的參考。 http://i.stack.imgur.com/GLaN3.jpg – Amit1
@PieterGeerkens的想法是第一種可能性。另一個是在某些情況下,爲你製作宏的人忘了在Excel應用程序中關閉狀態欄。您可以按照以下方式手動切換:Alt + F11 >>即時窗口>>寫入:Application.Statusbar = false >>按enter ...如果宏仍在運行,可能是取決於代碼的編程方式,更改不會是永久性的。 –