Jeg har lavet en skabelon med en userform, kaldet UserForm1. Jeg har installeret skabelonen på 15 computere uden problemer.
Nu har jeg lige installeret den på pc nr. 16, men her går det galt. Når jeg bruger skabelonen, kaldes flg. kode:
Private Sub Document_New() UserForm1.Show End Sub
Det giver følgende fejl: Runtime error '-2147024769 (8007007f)' Automation error Den angivne procedure blev ikke fundet
Userform1 eksisterer og der er ikke rettet i skabelonen efter jeg startede med at installere den. Skabelonen er installeret på både bærbare og stationære computere. Windows XP og Office 2003.
Hvad sker der ?? og hvordan kan jeg rette fejlen ?? Jeg har prøvet at oprette en ny form, og så kopiere kode og form over i denne nye userform2, men med samme resultat. Jeg har før haft samme problem, men dette trick plejer at virke, bare ikke denne gang.
Er du helt sikker på, at det er der, fejlen opstår? Hvis UserForm1 findes, burde det ikke være tilfældet, og det burde ikke kunne give den konkrete fejlmelding. Hvis der opstår en fejl under afvikling af en UserForm, og hvis der ikke inde i koden til selve UserForm'en er lavet kode til fejlhåndtering, hopper VBA tilbage til det sted, hvorfra UserForm'en blev kaldt - og det er linjen UserForm1.Show.
Det var derfor, jeg spurgte, om du har prøvet at bruge F8 til at steppe gennem koden. Så vil du kunne se, præcis hvor fejlen opstår.
Det kan godt være at eg ikke forstår hvad du mener, men når dokumentet er en skabelon er den første kode, der afvikles:
Private sub document_new () userform1.show end sub
Da skabelonen fungerer 100% fejlfrit på 17 andre komputere, og det er 100% den samme kode, kan jeg ikke se at der kan være fejl i koden. Omdøber jeg userform1 til userform2 og retter samtlige kald userformX.show og .hide får jeg samme fejl.
Du skrev, at fejlmelding var: "Den angivne procedure blev ikke fundet". Den fejlmelding vil komme, hvis der i en makro er kald til en anden makro, som ikke findes. Linjen "userform1.show" kan ikke fremkalde den fejl.
Du har jo ikke vist din kode, så derfor har jeg ikke mulighed for at være præcis. Men den pågældende fejl kan komme, hvis der f.eks. inde i koden under userform1 er kald til en anden makro, som reelt ikke findes hos den pågældende bruger. Hvis 17 har denne makro, f.eks. i deres Normal.dot, mens nr. 18 ikke har, ville det kunne forklare, hvorfor det ikke virker ens. Det er derfor, jeg foreslog dig at bruge F8 til at finde ud af, præcis hvor fejlen opstår.
Jeg har set på/testet din skabelon, og jeg kan ikke umiddelbart finde noget, som skulle give anledning til den pågældende fejl.
Jeg kan se, at du ikke har "Option Explicit" i toppen af moduler. Jeg vil stærkt anbefale dig at sætte det på som standard (Tools > Options > fanen Editor > Require Variable Declaration). I din kode er der en del variable, som ikke er erklærede. Det gør det langt sværere at sikre, at koden er korrekt. Det er dog ikke det, der er anledning til problemet i dette tilfælde.
Jeg ville stadig prøve at bruge F8 til at steppe gennem koden på den computer, hvor problemet opstår. Du kan først åbne selve skabelonen hos den pågældende og indsætte et break point i userform1.Show. Du kan også slå View > Watch Window til, højreklikke i vinduet Watches og tilføje en "watch": sæt Expression til Err.Number, Procedure til (All Procedures), Module til (All Modules) og Watch Type til Break When Value Changes. Så vil koden stoppe, første gang der opstår en fejl.
Ud over det tror jeg desværre ikke, jeg er i stand til at hjælpe dig.
Synes godt om
Ny brugerNybegynder
Din løsning...
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.