02. september 2004 - 12:56Der er
17 kommentarer og 1 løsning
Lettere måde at inkludere en xla fil
Hej.
Jeg fik i http://www.eksperten.dk/spm/530916 hjælp til at få lagt mine macroer ud i en separat fil sådan så det er let at opdatere mine macroer, og det virker helt fint.
Næste "problem" er så bare at jeg håber på der findes en nemmere måde at inkludere denne xla fil i sit VBA projekt. I dag inkluderes filen jo ved at gå ind i Tools -> References og så browse efter filen, men det er jo ikke så fedt at skulle lave om hos 50 personer hvis man finder på at gemme filen et andet sted.
Kan man på en eller anden måde ikke inkludere denne fil dynamisk når man åbner dokumentet? Det optimale ville jo være at man har stien til xla filen stående i en celle på et ark, og filen der er angivet, inkluderes så som det første når Excel dokumentet åbnes.
Med version 7 af TeamShare tager Lector næste skridt og bygger en platform for AI-agenter, der i højere grad kan følge medarbejderen gennem hele arbejdsprocessen.
Jeg ved ikke om det egentligt gør det lettere for dig, eller om der er nogen problemer forbundet med det, men du kan da prøve at lave en tom mappe og smide din xla fil over i denne mappe. I Excel skal du i menuen Funktioner/Indstillinger vælge fanebladet Standard og så skrive stien til ovennævnte mappe i feltet "Alternativ filplacering ved opstart". Der må IKKE ligge andre filer i mappen da Excel prøver at åbne det hele. Næste gang Excel startes åbnes xla filen også.
Det er ligesom ikke hensigten med xla-filer, at de skal åbnes hver gang man åbner et dokument, men at man blot installerer dem én gang, og så skal man ikke tænke mere over det. Det som du beskriver med, at xla'en skal åbnes hver gang et Excel dokument åbnes, vil bedre kunne håndteres med at du lægger al koden over i dette dokument.
Ved at tilføje xla'en i VBA editoren i stedet for selve Excel, så åbnes xla filen jo netop ikke hver gang Excel startes, men kun hvis man åbner det dokument som xla'en hører til.
Det du foreslår i 19:30:37 vil jeg gerne undgå da du jo så netop åbner xla'en hver gang Excel åbnes, og det kræver desuden også opsætning af Excel hos alle brugere, hvilket jeg også gerne vil undgå :)
snowball -> Jeg havde åbenbart ikke læst din problemformulering særligt grundigt - beklager :-( Er det et problem at aktivere den via Funktioner/tilføjelsesprogrammer? Jeg ved godt at den så altid er aktiv, men er det et problem?
Holddaheltop. På grund af en lille bitte stavefejl kunne jeg ikke få nedenstående til at fungere, men nu er det langt om længe lykkedes. Så nu håber jeg du kan bruge det ;0)
Private Sub Workbook_Open() Application.AddIns.Add "C:\mappenavn\Filnavn.xla" AddIns("Navnpåtilføjelsesprogram").Installed = True End Sub
Har dog ændret det til Application.AddIns.Add "C:\mappenavn\Filnavn.xla", False da den så ikke kommer og spørger om man vil tilføje filen til Excels "Add-in library" :)
Efter jeg er begyndt at inkludere xla'en på denne måde, så har jeg problemer med at de macroer der ligger på selve arkene, f.eks. Worksheet_Deactivate. Når jeg forsøger at kalde en af de macroer der ligger i xla'en, så får jeg bare at vide at den Sub eller Function ikke findes. Det underlige er så at den åbenbart godt kan se den alligevel, for hvis jeg i VBA editoren skriver navnet på funktionen med kun store bogstaver, så retter editoren rigtigt nok navnet sådan så det er skrevet på samme måde som i xla'en.
Det samme gælder også Public variabler i xla'en. Dem kan den heller ikke tilgå ordentlig.
som du også placerer i Workbook_Open. Jeg oplevede lidt problemer med hvornår funktionerne blev tilgægngelige (men de blev det). Det er ikke sikkert du har det samme problem i din version.
Erstattede Application.AddIns.Add "C:\mappenavn\Filnavn.xla" med Application.VBE.ActiveVBProject.References.AddFromFile "C:\mappenavn\Filnavn.xla" og så virkede det igen.
Det virkede første gang jeg prøvede, men når man så efterfølgende åbner Excel dokumentet igen, så kommer den og brokker sig over at henvisningen findes i forvejen.
Før virkede det med AddIns("PSRMacro").Installed = False i Workbook_BeforeClose, men det er åbenbart ikke nok nu. Application.VBE.ActiveVBProject.References.Remove giver en "Type mismatch" hvis jeg skriver filnavnet.
Nogen forslag til dette (som forhåbent er det sidste problem ;))
På din PC er referencen installeret, og derfor kommer programmet med en fejlmeddelelse. Da fejlen ikke har nogen betydning, vil ovenstående sørge for at programmet ikke stopper, men blot går videre selvom fejlen opstår.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.