Макрос на Excel, за да се определи дали работната книга е отворена

Докато мислите за автоматично отваряне на работни книги на Excel, помислете какво може да се случи, ако се опитате да отворите книга, която вече е отворена. В света, който не е VBA, Excel се опитва да отвори файла отново, като показаното съобщение предупреждава, че всички незапазени промени ще бъдат загубени. Можете да се предпазите от подобно събитие, като проверите дали даден файл вече е отворен, преди да се опитате да го отворите отново.

Макрос на Excel, за да се определи дали работната книга е отворена

Избягвайте това предупредително съобщение.

Как работи макросът

Първото нещо, което трябва да забележите за този макрос, е, че той е функция, а не подпроцедура. Както ще видите, превръщането на този макрос във функция ви позволява да му подадете всяко име на файл, за да проверите дали този файл вече е отворен.

Същността на този код е проста. Тествате дадено име на файл, за да видите дали може да бъде присвоено на обектна променлива. Само отворени работни книги могат да бъдат присвоени на обектна променлива. Когато се опитате да присвоите затворена работна книга към променливата, възниква грешка.

Ако дадената работна книга може да бъде възложена, работната книга е отворена; ако възникне грешка, работната книга се затваря.

Функция FileIsOpenTest(TargetWorkbook като низ) като булева
„Стъпка 1: Декларирайте вашите променливи
    Dim TestBook като работна тетрадка
„Стъпка 2: Кажете на Excel да продължи при грешка
    При грешка Продължете напред
„Стъпка 3: Опитайте се да присвоите целевата работна книга на TestBook
    Задайте TestBook = Workbooks(TargetWorkbook)
„Стъпка 4: Ако не е възникнала грешка, работната книга вече е отворена
    Ако Err.Number = 0 Тогава
    FileIsOpenTest = Вярно
    иначе
    FileIsOpenTest = False
    Край, ако
Крайна функция

Първото нещо, което прави макросът, е да декларира String променлива, която ще съдържа името на файла, което потребителят избере. TestBook е името на вашата String променлива.

В стъпка 2 казвате на Excel, че може да има грешка при изпълнението на този код и в случай на грешка възобновете кода. Без този ред кодът просто ще спре, когато възникне грешка. Отново тествате дадено име на файл, за да видите дали може да бъде присвоено на обектна променлива. Ако дадената работна книга може да бъде присвоена, тя е отворена; ако възникне грешка, тя се затваря.

В стъпка 3 се опитвате да присвоите дадената работна книга към променливата TestBook Object. Работната книга, която се опитвате да присвоите, е низова променлива, наречена TargetWorkbook. TargetWorkbook се предава на функцията в декларациите на функциите (вижте първия ред на кода). Тази структура елиминира необходимостта от твърдо кодиране на име на работна книга, което ви позволява да го предадете като променлива вместо това.

В стъпка 4 просто проверявате дали е възникнала грешка. Ако не е възникнала грешка, работната книга е отворена, така че задавате FileIsOpenTest на True. Ако възникне грешка, работната книга не е отворена и сте задали FileIsOpenTest на False.

Отново, тази функция може да се използва за оценка на всеки файл, който предавате към него, чрез неговия аргумент TargetWorkbook. Това е красотата на поставянето на макроса във функция.

Следващият макрос показва как да приложите тази функция. Тук извиквате новата функция FileIsOpenTest, за да сте сигурни, че потребителят не може да отвори вече отворен файл:

Подмакрос1()

„Стъпка 1: Дефинирайте низова променлива

    Dim FName като вариант

    Dim FNFileOnly като низ

„Стъпка 2: Методът GetOpenFilename активира диалоговия прозорец

    FName = Application.GetOpenFilename( _

            FileFilter:="Excel Workbooks,*.xl*", _

            Title:="Изберете работна книга за отваряне", _

            MultiSelect:=False)

„Стъпка 3: Отворете избрания файл, ако още не е отворен

    Ако FName <> False Тогава

    FNFileOnly = StrReverse(Left(StrReverse(FName), _

                 InStr(StrReverse(FName), ") - 1))

Как да блокирате Microsoft Word да отваря файлове в режим само за четене в Windows

Как да блокирате Microsoft Word да отваря файлове в режим само за четене в Windows

Как да блокирам Microsoft Word да отваря файлове в режим само за четене в Windows Microsoft Word отваря файлове в режим само за четене, което прави невъзможно редактирането им? Не се притеснявайте, методите са по-долу

Как да коригирате неправилно отпечатване на документи на Microsoft Word

Как да коригирате неправилно отпечатване на документи на Microsoft Word

Как да коригирате грешки при отпечатването на неправилни документи на Microsoft Word Грешките при отпечатването на документи на Word с променени шрифтове, разхвърляни абзаци, липсващ текст или изгубено съдържание са доста чести. Въпреки това недейте

Изтрийте рисунки с писалка и маркер на вашите слайдове на PowerPoint

Изтрийте рисунки с писалка и маркер на вашите слайдове на PowerPoint

Ако сте използвали писалката или маркера, за да рисувате върху слайдовете на PowerPoint по време на презентация, можете да запазите чертежите за следващата презентация или да ги изтриете, така че следващия път, когато го покажете, да започнете с чисти слайдове на PowerPoint. Следвайте тези инструкции, за да изтриете чертежи с писалка и маркери: Изтриване на линии една в […]

Съдържание на библиотеката за стилове в SharePoint 2010

Съдържание на библиотеката за стилове в SharePoint 2010

Библиотеката със стилове съдържа CSS файлове, файлове с разширяем език на стиловия език (XSL) и изображения, използвани от предварително дефинирани главни страници, оформления на страници и контроли в SharePoint 2010. За да намерите CSS файлове в библиотеката със стилове на сайт за публикуване: Изберете Действия на сайта→Преглед Цялото съдържание на сайта. Появява се съдържанието на сайта. Библиотеката Style се намира в […]

Форматирайте числата в хиляди и милиони в отчети на Excel

Форматирайте числата в хиляди и милиони в отчети на Excel

Не затрупвайте аудиторията си с огромни числа. В Microsoft Excel можете да подобрите четливостта на вашите табла за управление и отчети, като форматирате числата си така, че да се показват в хиляди или милиони.

Как да споделяте и следвате сайтове на SharePoint

Как да споделяте и следвате сайтове на SharePoint

Научете как да използвате инструменти за социални мрежи на SharePoint, които позволяват на индивиди и групи да общуват, да си сътрудничат, споделят и да се свързват.

Как да конвертирате дати в юлиански формати в Excel

Как да конвертирате дати в юлиански формати в Excel

Юлианските дати често се използват в производствени среди като времеви печат и бърза справка за партиден номер. Този тип кодиране на дата позволява на търговците на дребно, потребителите и обслужващите агенти да идентифицират кога е произведен продуктът и по този начин възрастта на продукта. Юлианските дати се използват и в програмирането, военните и астрономията. Различно […]

Как да създадете уеб приложение на Access

Как да създадете уеб приложение на Access

Можете да създадете уеб приложение в Access 2016. И така, какво всъщност е уеб приложение? Е, уеб означава, че е онлайн, а приложението е просто съкращение от „приложение“. Персонализирано уеб приложение е онлайн приложение за база данни, достъпно от облака с помощта на браузър. Вие създавате и поддържате уеб приложението в настолната версия […]

Лента за бързо стартиране в SharePoint 2010

Лента за бързо стартиране в SharePoint 2010

Повечето страници в SharePoint 2010 показват списък с връзки за навигация в лентата за бързо стартиране в лявата част на страницата. Лентата за бързо стартиране показва връзки към представено съдържание на сайта, като списъци, библиотеки, сайтове и страници за публикуване. Лентата за бързо стартиране включва две много важни връзки: Връзка към цялото съдържание на сайта: […]

Какво означават съобщенията за грешка на Solver в Excel?

Какво означават съобщенията за грешка на Solver в Excel?

За прости проблеми Solver в Excel обикновено бързо намира оптималните стойности на променливата Solver за целевата функция. Но в някои случаи Solver има проблеми с намирането на стойностите на променливата Solver, които оптимизират целевата функция. В тези случаи Solver обикновено показва съобщение или съобщение за грешка, което описва или обсъжда проблема, който […]