Avatar billede folj Forsker
22. juni 2018 - 12:21 Der er 7 kommentarer og
1 løsning

VBA Excel. variabler der ikke er erklæret korrekt...

Hej eksperter !
Jeg har en fil som jeg har haft kørende med mange brugere, og alt har fungeret fejlfrit i flere år.

Nu er den pludselig blevet følsom for om alle variabler er erklæret korrekt.

Det betyder at alle steder hvor programmøren (jeg) bare har programmeret løs, der kommer der kører den i fejl, og der kommer en meddelelse om alle de steder der er en variabel der ikke er erklære.

Jeg tænker på om jeg ved en fejl har fået aktiveret et eller andet der gør at alle variabler skal være erklæret korrekt.


Er der en indstilling der styrer om den skal være så følsom og er det noget der knytter sig til den enkelte fil, eller til programmet?

Jeg søger ikke kommentarer til hvorvidt man skal erklære variable eller ej.
Den diskussion skal vi nok ikke ud I. Jeg prøver næsten konsekvent at erklære mine variable I starten af min programmering.
Avatar billede Dan Elgaard Ekspert
23. juni 2018 - 11:22 #1
Så er det vel kun godt, at du har fået Excel indstillet til, at kræve variabler erklæret :-)

Når nu, du både gør det, og, det er en dødssynd ikke, at gøre det :-)

Under alle omstændigheder, så kan dit problem jo let løses ved blot lige, at erklære dine variabler...
Avatar billede jkrons Professor
24. juni 2018 - 00:06 #2
Prøv at ser i VB editoren under Tools, Options, fanebladet Editor. Er der sat flueben i Require variable declaration?
Avatar billede folj Forsker
25. juni 2018 - 09:06 #3
Takker for jeres hjælp.
Professor jkrons får credit for at fortælle hvor det indstilles. Der var dog ikke sat et flueben her. og alligevel opfører denne ene fil sig som om der var sat flueben Ived Require variable declaration.

Jeg har testet om det også berører andre filer, og jeg har endda oprettet en ny testfil hvor jeg bevidst undlader at deklarede variable og det kører fint.
Men hvorfor begynder denne ene fil at opføre sig sådan?

@Dan Elgaard:
Du forklarer at der jo ikke er noget problem...
Selvom jeg næsten konsekvent deklarerer variable, så giver det noget usikkerhed om filens stabilt fremover (hvor jeg holder ferie), eller om filen vil komme I nogle af de sjældnere situationer hvor der bruges en variable der heller ikke var deklareret...

Så kan jeg komme retur fra ferie, og brugerne melder at filen fejler når jeg afvikler dette eller dette.
Avatar billede folj Forsker
23. august 2018 - 13:57 #4
Fejlen blev fundet.
Måske skulle jeg hellere kalde det kilden til problemet blev fundet...

I en testprocedure som jeg havde I et separate modul, var der skrevet
Option Explicit
øverst i modulet.

Senere har jeg været inde i min VBA-bog og læst om Option Explicit, og den gør at alle varibler ska være defineret.
Avatar billede Dan Elgaard Ekspert
24. august 2018 - 08:20 #5
Såååå....
...du erklærer altså ikke alle dine variabler?!?

Tsk, tsk...

Værste programmeringsfejl af dem alle - EVER!
Avatar billede michael_stim Ekspert
24. august 2018 - 10:50 #6
#5
Den värste programmeringsfejl - EVER, er nok lige at tage i :-D Kan nok komme på en del andre der er värrere. Absolut, det kan give et resultat der ikke er önsket og det er svärere at debugge.
Avatar billede Dan Elgaard Ekspert
24. august 2018 - 17:32 #7
Et program SKAL kunne compilere med 'Option Explicit' sat til...
...og, den eneste metode til, at sikre dette er netop ved, at have 'Option Explicit' sat til.

Så, jo: Worst programming pratice EVER!

http://www.EXCELGAARD.dk/Bib/Option%20Explicit/
Avatar billede michael_stim Ekspert
24. august 2018 - 20:54 #8
Nu nævnte du jo ikke noget om hvilket sprog. Så nej. Måske i vba verden.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester