Kezdőlap › Fórumok › Excel programozás › File másolása
- This topic has 4 hozzászólás, 2 résztvevő, and was last updated 8 years, 1 month telt el by serigala.
-
SzerzőBejegyzés
-
2016-08-26-13:33 #2909
Szia Imre!
Cég szerverén található a következő fájl „valami_2016-08-26_utem_2-DOC0194557.txt”. Ezt szeretném saját meghajtómra másolni minden nap. Az aktuális nap változása nem okoz gondot. A fájl nevében a DOC után található karakterek értéke minden nap változik. Ezt kellene helyettesíteni, de se a „*”, sem pedig a „?” próbálgatásával nem sikerült.
Ezen problémámra keresem a megoldást.Sub masol()
mainap = Format(Date, „YYYY”) & „-” & Format(Date, „MM”) & „-” & Format(Date, „DD”)
FileCopy „H:\VBA\teszt\valami_” & mainap & „_utem_2-DOC” & „.txt”, „H:\VBA\teszt2\valami_” & mainap & „_utem_2-DOC” & „.txt”
End SubSegítségedet előre is Köszönöm!
2016-08-26-22:19 #2912Szia!
Itt azt látom problémának, hogy a másolásnál a célfájl esetén szinte biztosan nme használható joker karakter. De az is lehet, hogy a forrásfájl esetében sem.
A dátum formát különben egyszerűbben is megadhatod:
format(date,"yyyy-mm-dd")
A másik kérdés, hogy a fenti módszerrel biztosan 1 db fájlra tudod-e szűkíteni a talált fájliok számát. A Filecopy csak egy fájlt tud egy időben másolni.
Ha a válasz IGEN, akkor Én azt csinálnám, hogy egy DIR paranccsal, * joker karakterel lekérném a fájl valódi nevét, azután már másolhatom.Sub masol() mainap = Format(Date, "yyyy-mm-dd") forrasmappa = "c:\ahol_a_fajl_van\" celmappa = "c:\ahova_masolni_akarod\" f = Dir("valami_" & mainap & "_utem_2-DOC*.txt") FileCopy forrasmappa & f, celmappa & f End Sub
Ez alapján sikerül?
Imre
2016-08-29-08:51 #2920Bad file name or number
Ezt a hibaüzenetet kapom.„DIR” és „*” használatával az „f” értéke üres.
„DIR” használatával és „*” nélkül az „f” értéke üres.
„DIR” nélkül „*” használatával az „f” értéke(„valami_2016-08-29_utem_2-DOC*.txt”).
A fenti variációkra a fenti hibaüzenet érkezik. Az „f” értékénél „….DOC*”nak nem a „DOChelyettesített karakterek„-et kellene tartalmaznia?„DIR” és „*” nélkül működik. Az átnevezett fájl megjelenik a célmappában „valami_2016-08-29_utem_2-DOC.txt”.
Még mindig a helyettesítő karakter okozza a másolási problémát szerintem.A másolás csak egy fájlra vonatkozna, ami így néz ki “valami_2016-08-26_utem_2-DOC0194557.txt” és ahogy írtam, a dátum a mai nap és a DOC utáni karakterek minden nap változnak.
Remélem lesz még ötleted, jó lenne automatikussá tenni a másolgatást.
István2016-08-29-14:57 #2923Nem értem mi az a DIR nélkül.
DE:
1. A Dir simán az aktuális munkakönyvtárban keres.
Beállítottad? Én nem írtam bele a mintába2. Ha van olyan fájl a forrás mappában, ami a mintának megfelel, akkor az f értéke a fájl neve lesz
Próbáld ki az Immediate ablakban.
– Állítsd be chdir paranccsal a munkamappát oda, ahol a fájl van (ahol naponta cserélődik)
– Ird be ezt a parancsot: ?Dir(„valami_2016-08-26_utem_2-DOC*.txt”) (Nyilván a fájlnevet értelemszerűen írd)Erre vissza kell adnia a fájl nevét. valójában az első olyat adja vissza, ami illeszkedik a mintára. Tehát a „*” előtti rész állandó, a DOC utáni bármi, és txt a kiterjesztése.
A fenti kódot én lefuttattam, simán működött.
Szerintem nem jó helyen keres.Imre
2016-08-30-07:38 #2925Valóban A CHDIR nem lett beállítva. Így már működik.
Köszönöm a segítséget.
-
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.