2013-06-04 3 views
-1

Я запрограммировал Excel в VBScript таким образом, что мои действия отображаются в нижнем левом углу листа excel и его работе отлично, но проблема в том, что те же действия также отображаются в другом Excel которые открываются, но не связаны с листом Excel, на котором выполняются мои действия.Изменить поведение изменения строки состояния

Status bar text

Как я могу избежать этого другие листы Excel будет отображать одни и те же действия?

+3

Предполагаю, что вы имеете в виду текст StatusBar. Если это так, это элемент управления экземпляром приложения; вы должны открыть новый экземпляр Excel (а не только другую книгу), чтобы иметь еще один StatusBar. –

+0

Прикрепленный файл Ссылка для вашего реф. http://i.stack.imgur.com/GLaN3.jpg – Amit1

+1

Идея @PieterGeerkens - первая возможность. Другой - тот, кто сделал макрос для вас, забыл отключить строку состояния в приложении Excel в некоторой ситуации. Вы можете переключаться вручную каждый раз, когда вам это нужно: Alt + F11 >> Immediate Window >> write there: 'Application.Statusbar = false' >> нажмите enter ... если макрос все еще работает, возможно, что изменение не будет постоянным в зависимости от способа программирования кода. –

ответ

0

Проблема в том, что 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 
Смежные вопросы