Kopiowanie plików - vba

Wątek przeniesiony 2021-01-28 13:25 z Inne języki programowania przez cerrato.

PI
  • Rejestracja:ponad 5 lat
  • Ostatnio:ponad 5 lat
  • Postów:12
0

A jeszcze jedno pytanie. W folderze mam odkładane raporty. Ich nazwa codziennie to
Aaaa_datagenerowania_godzina.txt
Ta część Aaaa jest zawsze stała. Chciałbym aby makro kopiowalo mi tylko dokładnie ten plik. W momencie kopiowania jestem pewny jaka jest data ale nie znam godziny. Jak to ominąć? Tzn. chce żeby makro czytało tylko fragment nazwy pliku i kopiowalo go do okreslonej lokalizacji.

PA
  • Rejestracja:ponad 22 lata
  • Ostatnio:2 minuty
  • Postów:3874
0
Kopiuj
f = dir("c:\folder\aaaa_20191119_*.txt")
If f <> "" Then
    'kopiuj plik w zmiennej masz nazwe pliku, jeśli znalazł
End If
PI
  • Rejestracja:ponad 5 lat
  • Ostatnio:ponad 5 lat
  • Postów:12
0

Występuje błąd Bad file name or number :(

Marcin.Miga
  • Rejestracja:prawie 17 lat
  • Ostatnio:około 2 godziny
  • Postów:2792
0

Pokaż kod, który wykonujesz.

PI
  • Rejestracja:ponad 5 lat
  • Ostatnio:ponad 5 lat
  • Postów:12
0

Sub kopiowanie()

Dim source, dest as string
Dim data as string

Data = format(date,"yyyymmdd")
Source = "c:\users\piotr\desktop\nowy\plik_" & data & "_" & "*.txt"
Dest = "c:\users\piotr\desktop\nowy_1\plik.txt"
Copyfile source, dest

End sub

Tasmanian Devil
Hej! Twój post prawdopodobnie zawiera niesformatowany kod. Użyj znaczników ``` aby oznaczyć, co jest kodem, będzie łatwiej czytać. (jestem botem, ta akcja została wykonana automatycznie, prawdopodobieństwo 0.9910413)
Marcin.Miga
  • Rejestracja:prawie 17 lat
  • Ostatnio:około 2 godziny
  • Postów:2792
0
Kopiuj
Sub kopiowanie()

Dim source As string, dest as string, f as string
Dim data as string

Data = format(date,"yyyymmdd")
Source = "c:\users\piotr\desktop\nowy\plik" & data & "" & "*.txt"
Dest = "c:\users\piotr\desktop\nowy_1\plik.txt"

f = dir(Source)
If f <> "" Then
    'kopiuj plik w zmiennej masz nazwe pliku, jeśli znalazł
   Copyfile f, dest
End If

End sub
PI
  • Rejestracja:ponad 5 lat
  • Ostatnio:ponad 5 lat
  • Postów:12
0

Wyskakuje błąd File not found

Marcin.Miga
  • Rejestracja:prawie 17 lat
  • Ostatnio:około 2 godziny
  • Postów:2792
0

Wstaw przed CopyFile:

Kopiuj
MsgBox f

i zobacz, jaki plik ci znajduje.
Ok, już wiem...
zamień:

Kopiuj
CopyFile F, Dest

na:

Kopiuj
CopyFile "c:\users\piotr\desktop\nowy\" & f, dest
PI
  • Rejestracja:ponad 5 lat
  • Ostatnio:ponad 5 lat
  • Postów:12
0

Działa. Dziękuję!

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.