Лентата на състоянието в Excel може да се използва като монитор на кодове. Когато вашият VBA код е дълъг и изпълнявате няколко задачи с помощта на VBA, често деактивирате актуализацията на екрана, така че да не виждате този екран да трепти. Но поради това не можете да разберете какво се случва във вашия код.
Ако не знаете къде е лентата на състоянието в Excel, ето я:
Можете да използвате лента на състоянието на excel, за да получите информация от Excel, без да пречите на изпълнението на кода. Можете да показвате етапите на вашия Marco в лентата на състоянието или да го използвате като лента за напредък.
VBA код за показване на съобщения в лентата на състоянието на Excel
Application.StatusBar = "Съобщение"
StatusBar е свойство на обект Application, което приема текст като вход.
В този пример просто показвам коя функция работи …
Sub DisplayMessageOnStatusBar () Application.ScreenUpdating = False Application.StatusBar = "Извикваща функция първа" 'call function_1 Application.Wait (Now + TimeValue ("00: 00: 2")) Application.StatusBar = "Функция за извикване две" 'Call function_2 Application.Wait (Now + TimeValue ("00: 00: 2")) Application.StatusBar = "Извикваща функция три" 'Call function_3 Application.Wait (Now + TimeValue ("00: 00: 2")) Application.StatusBar = "" Application.ScreenUpdating = True End Sub
В този пример актуализацията на екрана е зададена на False в началото.
Сега, преди да извикам function_1, показвам съобщение, което извиква функция one.
Application.Wait (Now + TimeValue ("00: 00: 2")) този ред код е само за фалшифициране на продължително извикване на функция, така че да получа 2 секунди, за да видя това в лентата на състоянието ми.
Направих го преди всички извиквания на функции и в крайна сметка зададох лентата на състоянието на празно (“”).
Съобщенията в лентата на състоянието са доста полезни за показване на съобщения, докато работите с дълъг код. Когато вашият код преминава през няколко етапа или изпълнява дълъг цикъл, можете да го покажете в лентата на състоянието, така че потребителят да знае, че кодът работи. В противен случай потребителят може да мисли, че системата е обесена или нещо подобно.
Сега можете да получите интелигентно информация за лентата на състоянието, като използвате VBA на Excel 2016, 2013, 2010 и 2007, използвайки този еднолинейник.
СТАРИ ПОСТ
Някои vba макроси / кодове отнемат много време за изпълнение или изпълнение на необходимите действия. Ако сте изключили актуализирането на екрана с помощта на реда Application.ScreenUpdating = False в началото на вашия код, тогава ако някой потребител изпълни кода, той няма да знае какво се случва и ще мисли, че компютърната система не реагира. Можете да поискате от кода да покаже съобщение за състоянието в лентата на състоянието, така че потребителят да бъде информиран за текущото състояние на кода.
Ето един прост код, който дава поле за съобщение, показващо стойностите в колона А, започвайки от ред 2 до последния ред. Лентата на състоянието ще покаже съобщението „Macro running“, докато кодът се изпълнява, и след като кодът е готов, ще покаже „Ready“, което е едно от съобщенията в Excel по подразбиране.
Опция Изричен подмакрос1 () Dim i As Long, lrow As Long Application.ScreenUpdating = False Application.DisplayAlerts = False Application.DisplayStatusBar = Вярно с работни листове („Sheet1“) lrow = .Range („A“ & .Rows.Count) .End (xlUp) .Row For i = 2 to lrow Application.StatusBar = „Macro running“ Msgbox .Range („A“ & i) .Value Next i End With Application.StatusBar = „” Application.ScreenUpdating = True Application.DisplayAlerts = True End Sub
За да копирате горния код във вашия файл,
- Натиснете Alt + F11 на клавиатурата.
- От лявата страна ще видите Microsoft Excel Objects.
- Щракнете с десния бутон и изберете Вмъкване.
- След това щракнете върху Модул.
- Копирайте кода в кодовия прозорец вдясно.
Можете да видите кода, публикуван в модула по -долу -
Сега нека разберем какво прави всеки ред от кода -
Така че първо настройваме DISPLAYSTATUSBAR на true и след това задаваме съобщението за лентата на състоянието. След като използваме Application.StatusBar = “” в края на кода, той ще се върне към стандартното съобщение на Excel, което е ГОТОВ.
Ето снимка на лентата на състоянието, докато макросът работи.
След като макросът приключи, лентата на състоянието ще се покаже, както следва -
По същия начин можете да актуализирате лентата на състоянието в различни части на кода, така че потребителят да знае какво се случва, докато макросът работи. Понякога може да има един или повече макроси, които обхващат множество процеси и тази лента на състоянието ще бъде полезна, за да се знае при кой процес е достигнат макросът.
Ако ви харесаха нашите блогове, споделете го с приятелите си във Facebook. Можете също така да ни следвате в Twitter и Facebook.
Ще се радваме да чуем от вас, уведомете ни как можем да подобрим, допълним или обновим работата си и да я подобрим. Пишете ни на имейл сайта
Популярни статии:
50 преки пътища в Excel за повишаване на вашата производителност
Как да използвате функцията VLOOKUP в Excel
Как да използвате функцията COUNTIF в Excel
Как да използвате функцията SUMIF в Excel