Екцел макро за одређивање да ли је радна свеска отворена

Док размишљате о аутоматском отварању Екцел радних свеска, размислите шта се може догодити ако покушате да отворите књигу која је већ отворена. У свету који није ВБА, Екцел покушава поново да отвори датотеку, а приказана порука упозорава да ће све несачуване промене бити изгубљене. Можете се заштитити од такве појаве тако што ћете проверити да ли је дата датотека већ отворена пре него што покушате да је поново отворите.

Екцел макро за одређивање да ли је радна свеска отворена

Избегавајте ову поруку упозорења.

Како функционише макро

Прва ствар коју треба приметити код овог макроа је да је то функција, а не подпроцедура. Као што ћете видети, претварање овог макроа у функцију омогућава вам да му проследите било које име датотеке да бисте тестирали да ли је та датотека већ отворена.

Суштина овог кода је једноставна. Тестирате дато име датотеке да бисте видели да ли се може доделити променљивој објекта. Само отворене радне свеске могу се доделити променљивој објекта. Када покушате да променљивој доделите затворену радну свеску, долази до грешке.

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

Функција ФилеИсОпенТест(ТаргетВоркбоок као стринг) као Боолеан
'Корак 1: Декларисајте своје променљиве
    Дим ТестБоок као радна свеска
„Корак 2: Реците Екцел-у да настави са грешком
    У случају грешке Настави даље
„Корак 3: Покушајте да доделите циљну радну свеску ТестБоок-у
    Постави тест свеска = Воркбоокс(ТаргетВоркбоок)
„Корак 4: Ако није дошло до грешке, радна свеска је већ отворена
    Ако је Ерр.Нумбер = 0 Онда
    ФилеИсОпенТест = Тачно
    Иначе
    ФилеИсОпенТест = Нетачно
    Крај Ако
Енд Фунцтион

Прва ствар коју макро ради је да декларише променљиву Стринг која ће садржати име датотеке које корисник одабере. ТестБоок је име ваше стринг променљиве.

У кораку 2, кажете Екцел-у да може доћи до грешке при покретању овог кода и, у случају грешке, наставите са кодом. Без ове линије, код би се једноставно зауставио када дође до грешке. Опет, тестирате дато име датотеке да видите да ли се може доделити променљивој објекта. Ако се дата радна свеска може доделити, она је отворена; ако дође до грешке, затвара се.

У кораку 3 покушавате да доделите дату радну свеску променљивој ТестБоок Објецт. Радна свеска коју покушавате да доделите је стринг променљива која се зове ТаргетВоркбоок. ТаргетВоркбоок се прослеђује функцији у декларацијама функције (погледајте први ред кода). Ова структура елиминише потребу за чврстим кодирањем имена радне свеске, омогућавајући вам да га уместо тога проследите као променљиву.

У кораку 4, једноставно проверите да ли је дошло до грешке. Ако није дошло до грешке, радна свеска је отворена, па сте поставили ФилеИсОпенТест на Тачно. Ако је дошло до грешке, радна свеска није отворена и ви сте поставили ФилеИсОпенТест на Фалсе.

Опет, ова функција се може користити за процену било које датотеке коју јој проследите, преко њеног аргумента ТаргетВоркбоок. Ово је лепота стављања макроа у функцију.

Следећи макро показује како да примените ову функцију. Овде позивате нову функцију ФилеИсОпенТест да бисте били сигурни да корисник не може да отвори већ отворену датотеку:

Подмакро1()

'Корак 1: Дефинишите стринг променљиву

    Дим ФНаме као варијанта

    Дим ФНФилеОнли Ас Стринг

„Корак 2: Метод ГетОпенФиленаме активира оквир за дијалог

    ФНаме = Апплицатион.ГетОпенФиленаме( _

            ФилеФилтер:="Екцел Воркбоокс,*.кл*", _

            Титле:="Изаберите радну свеску за отварање", _

            МултиСелецт:=Фалсе)

„Корак 3: Отворите изабрану датотеку ако већ није отворена

    Ако ФНаме <> Фалсе Онда

    ФНФилеОнли = СтрРеверсе(Лево(СтрРеверсе(ФНаме), _

                 ИнСтр(СтрРеверсе(ФНаме), ") - 1))

Обришите цртеже оловком и маркером на својим ПоверПоинт слајдовима

Обришите цртеже оловком и маркером на својим ПоверПоинт слајдовима

Ако сте користили оловку или маркер за цртање на ПоверПоинт слајдовима током презентације, можете да сачувате цртеже за следећу презентацију или да их избришете тако да ћете следећи пут када их покажете почети са чистим ПоверПоинт слајдовима. Пратите ова упутства да бисте избрисали цртеже оловком и маркером: Брисање линија један на […]

Садржај библиотеке стилова у СхареПоинт 2010

Садржај библиотеке стилова у СхареПоинт 2010

Библиотека стилова садржи ЦСС датотеке, датотеке Ектенсибле Стилесхеет Лангуаге (КССЛ) и слике које користе унапред дефинисане главне странице, изгледе страница и контроле у ​​СхареПоинт 2010. Да бисте лоцирали ЦСС датотеке у библиотеци стилова на локацији за објављивање: Изаберите Радње сајта→Прикажи Сав садржај сајта. Појављује се садржај сајта. Библиотека Стил налази се у […]

Форматирајте бројеве у хиљадама и милионима у Екцел извештајима

Форматирајте бројеве у хиљадама и милионима у Екцел извештајима

Немојте претрпати своју публику огромним бројевима. У Мицрософт Екцел-у можете побољшати читљивост својих контролних табли и извештаја тако што ћете форматирати своје бројеве тако да се појављују у хиљадама или милионима.

Како делити и пратити СхареПоинт локације

Како делити и пратити СхареПоинт локације

Научите како да користите СхареПоинт алатке за друштвено умрежавање које омогућавају појединцима и групама да комуницирају, сарађују, деле и повезују се.

Како претворити датуме у јулијанске формате у Екцелу

Како претворити датуме у јулијанске формате у Екцелу

Јулијански датуми се често користе у производним окружењима као временска ознака и брза референца за број серије. Ова врста кодирања датума омогућава продавцима, потрошачима и услужним агентима да идентификују када је производ направљен, а тиме и старост производа. Јулијански датуми се такође користе у програмирању, војсци и астрономији. Различит […]

Како да направите приступну веб апликацију

Како да направите приступну веб апликацију

Можете да креирате веб апликацију у програму Аццесс 2016. Дакле, шта је уопште веб апликација? Па, веб значи да је онлајн, а апликација је само скраћеница за „апликацију“. Прилагођена веб апликација је апликација базе података на мрежи којој се приступа из облака помоћу претраживача. Ви правите и одржавате веб апликацију у верзији за десктоп […]

Трака за брзо покретање у СхареПоинт 2010

Трака за брзо покретање у СхареПоинт 2010

Већина страница у систему СхареПоинт 2010 приказује листу веза за навигацију на траци за брзо покретање дуж леве стране странице. Трака за брзо покретање приказује везе ка садржају истакнутог сајта као што су листе, библиотеке, сајтови и странице за објављивање. Трака за брзо покретање укључује две веома важне везе: Линк за сав садржај сајта: […]

Шта значе поруке о грешци решавача у Екцел-у?

Шта значе поруке о грешци решавача у Екцел-у?

За једноставне проблеме, Солвер у Екцел-у обично брзо проналази оптималне вредности променљиве Решавача за функцију циља. Али, у неким случајевима, Солвер има проблема да пронађе вредности променљиве Солвера које оптимизују функцију циља. У овим случајевима, Солвер обично приказује поруку или поруку о грешци која описује или расправља о проблему који […]

Како уклонити израчуната поља и ставке из Екцел заокретне табеле

Како уклонити израчуната поља и ставке из Екцел заокретне табеле

Можете лако да уклоните израчуната поља и ставке из Екцел заокретне табеле. Да бисте уклонили израчунато поље, кликните на ћелију у изведеној табели. Затим кликните на команду Поља, ставке и скупови на картици Анализа и изаберите Израчунато поље из подменија који се појави. Када Екцел прикаже дијалог Уметање израчунатог поља, изаберите […]

Како означити у СхареПоинт-у

Како означити у СхареПоинт-у

Ознаке су кључне речи које додељујете садржају. Означавање страница за дељење са другима је обележавање на друштвеним мрежама, веома је популарно на вебу и лако је у СхареПоинт-у. Ако сте икада користили сајт као што је Делициоус, већ знате како функционише обележавање на друштвеним мрежама. Како све више људи додељује исте ознаке, ознаке постају начин на који […]