En Excel-makro til at bestemme, om en projektmappe er åben

Mens du overvejer automatisk at åbne Excel-projektmapper, skal du overveje, hvad der kan ske, hvis du forsøger at åbne en bog, der allerede er åben. I ikke-VBA-verdenen forsøger Excel at åbne filen igen, med den viste meddelelse, der advarer om, at eventuelle ikke-gemte ændringer vil gå tabt. Du kan beskytte dig mod en sådan hændelse ved at kontrollere, om en given fil allerede er åben, før du prøver at åbne den igen.

En Excel-makro til at bestemme, om en projektmappe er åben

Undgå denne advarselsmeddelelse.

Sådan fungerer makroen

Den første ting at bemærke ved denne makro er, at det er en funktion, ikke en underprocedure. Som du vil se, gør det at gøre denne makro til en funktion, så du kan sende et hvilket som helst filnavn til den for at teste, om filen allerede er åben.

Kernen i denne kode er enkel. Du tester et givet filnavn for at se, om det kan tildeles en objektvariabel. Kun åbne projektmapper kan tildeles til en objektvariabel. Når du forsøger at tildele en lukket projektmappe til variablen, opstår der en fejl.

Hvis den givne projektmappe kan tildeles, er projektmappen åben; hvis der opstår en fejl, lukkes projektmappen.

Funktion FileIsOpenTest(TargetWorkbook As String) Som Boolean
Trin 1: Erklær dine variabler
    Dim testbog som arbejdsbog
Trin 2: Bed Excel om at genoptage ved fejl
    Ved fejl Genoptag Næste
Trin 3: Prøv at tildele målprojektmappen til TestBook
    Set TestBook = Workbooks(TargetWorkbook)
Trin 4: Hvis der ikke opstod en fejl, er projektmappen allerede åben
    Hvis Err.Number = 0 Så
    FileIsOpenTest = Sand
    Andet
    FileIsOpenTest = Falsk
    Afslut Hvis
Afslut funktion

Den første ting makroen gør er at erklære en String-variabel, der vil indeholde det filnavn, som brugeren vælger. TestBook er navnet på din strengvariabel.

I trin 2 fortæller du Excel, at der kan være en fejl ved kørsel af denne kode, og i tilfælde af en fejl genoptager du koden. Uden denne linje ville koden simpelthen stoppe, når der opstår en fejl. Igen tester du et givet filnavn for at se, om det kan tildeles en objektvariabel. Hvis den givne projektmappe kan tildeles, er den åben; hvis der opstår en fejl, er den lukket.

I trin 3 forsøger du at tildele den givne projektmappe til variabelen TestBook Object. Den projektmappe, du forsøger at tildele, er en strengvariabel kaldet TargetWorkbook. TargetWorkbook videregives til funktionen i funktionsdeklarationerne (se første linje i koden). Denne struktur eliminerer behovet for at hardkode et projektmappenavn, så du i stedet kan sende det som en variabel.

I trin 4 kontrollerer du blot, om der er opstået en fejl. Hvis der ikke opstod en fejl, er projektmappen åben, så du indstiller FileIsOpenTest til True. Hvis der opstod en fejl, er projektmappen ikke åben, og du indstiller FileIsOpenTest til False.

Igen kan denne funktion bruges til at evaluere enhver fil, du sender til den, via dens TargetWorkbook-argument. Dette er skønheden ved at sætte makroen ind i en funktion.

Den følgende makro viser, hvordan denne funktion implementeres. Her kalder du den nye FileIsOpenTest-funktion for at sikre, at brugeren ikke kan åbne en allerede åbnet fil:

Undermakro1()

Trin 1: Definer en strengvariabel

    Dim F-navn som variant

    Dim FNFileOnly As String

'Trin 2: GetOpenFilename Method aktiverer dialogboksen

    FName = Application.GetOpenFilename( _

            FileFilter:="Excel-arbejdsbøger,*.xl*", _

            Title:="Vælg en projektmappe at åbne", _

            MultiSelect:=False)

Trin 3: Åbn den valgte fil, hvis den ikke allerede er åbnet

    Hvis FNavn <> Falsk Så

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

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

Sådan blokerer du Microsoft Word fra at åbne filer i skrivebeskyttet tilstand på Windows

Sådan blokerer du Microsoft Word fra at åbne filer i skrivebeskyttet tilstand på Windows

Sådan blokerer du Microsoft Word fra at åbne filer i skrivebeskyttet tilstand på Windows Microsoft Word åbner filer i skrivebeskyttet tilstand, hvilket gør det umuligt at redigere det? Bare rolig, metoderne er nedenfor

Sådan rettes forkert udskrivning af Microsoft Word-dokumenter

Sådan rettes forkert udskrivning af Microsoft Word-dokumenter

Sådan rettes fejl ved udskrivning af forkerte Microsoft Word-dokumenter Fejl ved udskrivning af Word-dokumenter med ændrede skrifttyper, rodede afsnit, manglende tekst eller tabt indhold er ret almindelige. Men lad være

Slet pen- og highlighter-tegninger på dine PowerPoint-dias

Slet pen- og highlighter-tegninger på dine PowerPoint-dias

Hvis du har brugt pennen eller highlighteren til at tegne på dine PowerPoint-dias under en præsentation, kan du gemme tegningerne til næste præsentation eller slette dem, så næste gang du viser den, starter du med rene PowerPoint-dias. Følg disse instruktioner for at slette pen- og highlighter-tegninger: Sletning af linjer en ved […]

Indhold af stilbibliotek i SharePoint 2010

Indhold af stilbibliotek i SharePoint 2010

Style-biblioteket indeholder CSS-filer, Extensible Stylesheet Language-filer (XSL) og billeder, der bruges af foruddefinerede mastersider, sidelayouts og kontrolelementer i SharePoint 2010. For at finde CSS-filer i Style-biblioteket på et udgivelsessted: Vælg Site Actions→ View Alt webstedsindhold. Indholdet af webstedet vises. Style-biblioteket ligger i […]

Formater tal i tusinder og millioner i Excel-rapporter

Formater tal i tusinder og millioner i Excel-rapporter

Overvæld ikke dit publikum med gigantiske tal. I Microsoft Excel kan du forbedre læsbarheden af ​​dine dashboards og rapporter ved at formatere dine tal, så de vises i tusinder eller millioner.

Sådan deler og følger du SharePoint-websteder

Sådan deler og følger du SharePoint-websteder

Lær, hvordan du bruger SharePoints sociale netværksværktøjer, der lader enkeltpersoner og grupper kommunikere, samarbejde, dele og forbinde.

Sådan konverteres datoer til julianske formater i Excel

Sådan konverteres datoer til julianske formater i Excel

Julianske datoer bruges ofte i produktionsmiljøer som et tidsstempel og hurtig reference for et batchnummer. Denne type datokodning giver detailhandlere, forbrugere og serviceagenter mulighed for at identificere, hvornår et produkt blev fremstillet, og dermed produktets alder. Julianske datoer bruges også i programmering, militæret og astronomi. Forskellige […]

Sådan opretter du en Access Web App

Sådan opretter du en Access Web App

Du kan oprette en webapp i Access 2016. Så hvad er en webapp overhovedet? Nå, web betyder, at det er online, og app er kun en forkortelse for "applikation". En Custom Web App er en online databaseapplikation, der tilgås fra skyen ved hjælp af en browser. Du bygger og vedligeholder webappen i desktopversionen […]

Hurtig startlinje i SharePoint 2010

Hurtig startlinje i SharePoint 2010

De fleste sider i SharePoint 2010 viser en liste over navigationslinks på linjen Hurtig start langs venstre side af siden. Hurtig startlinjen viser links til fremhævet webstedsindhold såsom lister, biblioteker, websteder og udgivelsessider. Hurtigstartlinjen indeholder to meget vigtige links: Linket Alt webstedsindhold: […]

Hvad betyder Solver-fejlmeddelelserne i Excel?

Hvad betyder Solver-fejlmeddelelserne i Excel?

Ved simple problemer finder Solver i Excel som regel hurtigt de optimale Solver-variableværdier for objektivfunktionen. Men i nogle tilfælde har Solver problemer med at finde de Solver-variableværdier, der optimerer objektivfunktionen. I disse tilfælde viser Solver typisk en meddelelse eller en fejlmeddelelse, der beskriver eller diskuterer det problem, der […]