Keresés

Új hozzászólás Aktív témák

  • Delila_1

    veterán

    válasz alfa20 #20779 üzenetére

    Igen, annyi különbséggel, hogy a Dim sorokat a makró elejére szoktuk bevinni, hogy később könnyebben megtaláljuk.

    Dim tbl1_fulnev As WorkSheet, tbl2_fulnev As WorkSheet, tbl3_fulnev As WorkSheet
    Alá már jöhetnek az értéket adó Set sorok.

    A Dim változónév As Típus helyet foglal a memóriában a változónak. Ennek az az előnye, hogy ha a makró írása közben elgépeled egy változó nevét, aminek helyet foglaltál, már az indításkor rád kiabál, hogy nincs dimenzionálva egy változó. Ha ezt a lehetőséget kihagyod, nehezebben találod meg a hibát, ami abból adódhat, hogy 1-1 karakter eltéréssel írtad be a változót több helyre. Érdemes hozzászokni a dimenzionáláshoz.

    Példa:
    Szoveg="Ez itt egy szöveg"
    Range("A10")=Szöveg
    Ha nem deklaráltad a Szoveg változót, az A10 üres lesz, mert a Szöveg változó üres string, nem adtál neki értéket. Az is lehet, hogy nulla lesz az A10, mert nem közölted a VBA-val, hogy a Szöveg milyen típusú (szöveg, dátum, szám, logikai, stb.) változó legyen. Keresheted a hibát, és könnyű átsiklani 1 betű eltérésen. Ha viszont foglaltál neki helyet, indításkor jön az üzenet, hogy nincs Szöveg változód.

    A VBE Tools | Option menü Editor fülén jelöld be a Require Variable Declaration négyzetet. Ettől kezdve a moduljaid tetején automatikusan megjelenik az Option Explicit felirat, ami kötelezővé teszi a változók deklarálását, futtatáskor azonnal figyelmeztet a hiányra.

    Szerk.: a helyfoglaláskor ne hagyd ki a típus megadását sem, akkor egy dátumot váró változónak nem adhatsz véletlenül szöveg típusú értéket. Előfordulhat, hogy 1-1 változóhoz változó típusú adatot kellene rendelned, ilyenkor a típust elhagyhatod, vagy Variant-ra állítod.

Új hozzászólás Aktív témák