Hirdetés

Keresés

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

  • Fferi50

    Topikgazda

    válasz föccer #51007 üzenetére

    Szia!
    Csak egy gondolat:
    Amikor egy új fájlt nyitsz meg, akkor az lesz az aktuális munkafüzet. Mivel azt írod, hogy egymás után több fájlt is nyitsz, nagy eséllyel nem a cél fájlod az aktív workbook amikor ehhez a sorhoz ér a makró.
    Nézd meg, hogy a hibaüzenet esetében melyik munkafüzet aktív.
    Mivel a Gyujtott_mintavetelek munkalap előtt nem írsz munkafüzet nevet, így azt az aktuális munkafüzetben keresi - de mivel az aktív munkafüzet az éppen megnyitott forrás fájl, persze nem találja.
    Megoldás: a forrás fájl megnyitása után aktíváld ismét a cél fájlt - vagy a munkalapnál használj teljes nevet.
    Célszerűnek találnám, ha változóba tennéd a cél munkafüzetet és akkor egyszerűbb lenne a hivatkozás rá:
    Mielőtt megnyitnád az első forrás fájlt:
    dim celwsh as Worksheet
    set celwsh=Sheets("Gyujtott_mintavetelek")
    'A mutatott sor pedig:
    celwsh.Range(celwsh.Cells(Gyujtott_minta_darab + 2, 1), celwsh.Cells(Gyujtott_minta_darab + 2, 20)).Value
    Ebben az esetben nem szükséges aktívvá tenni a cél munkafüzetet, mivel a változó tartalmazza a szükséges információkat.
    Egyébként egy területet egyben is átmásolhatsz, nem kell soronként menni.
    A forrás munkafüzetet is egyszerűbben tudod kezelni, ha változóba teszed a fájl megnyitása után. Egyszerűbb a kód írás is.
    Üdv.

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