Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

VBA Kopiowanie całego aktywnego arkusza do nowego skoroszytu

lukaszwat 09 Lis 2014 20:24 1596 4
  • #1 09 Lis 2014 20:24
    lukaszwat
    Poziom 9  

    Witam wszystkich
    Potrzebuje zrobić makro w vba tak by otwierało dowolny plik xlsx. Następnie kopiuje całą zawartość otwartego pliku do tego pliku gdzie jest makro tylko do nowych arkuszy ( no i właśnie w tym miejscu mi się wykrzacza)
    Poniżej kod

    Kod: vb
    Zaloguj się, aby zobaczyć kod


    z góry dziękuje za pomoc

    0 4
  • Pomocny post
    #2 10 Lis 2014 09:10
    clubs
    Poziom 30  

    zrób np. tak (wstawi ci na koncu)

    Kod: vb
    Zaloguj się, aby zobaczyć kod

    0
  • #3 10 Lis 2014 09:37
    lukaszwat
    Poziom 9  

    Dziękuje pomogło
    cały czas wyskakiwał mi błąd jak tak robiłem
    pozdrawiam

    1
  • Pomocny post
    #4 10 Lis 2014 10:57
    marcinj12
    Poziom 40  

    Nie robiłeś dokładnie "tak", bo w kodzie masz After:=Workbooks("wczyt.xlsm"), co jest składniowo bez sensu: "wstaw nowy arkusz za plik wczyt.xlsm".

    Ja tylko dodam, że składnia

    Kod: vb
    Zaloguj się, aby zobaczyć kod
    też nie zadziała jak trzeba, bo po otwarciu pliku, jak w przykładzie, aktywnym jest nowootwarty plik. Czyli Sheets.Count odnosi się do liczby arkuszy w otwartym pliku.

    Proponuję użyć ThisWorkbook, żeby wszystko było jasne:
    Kod: vb
    Zaloguj się, aby zobaczyć kod


    Ewentualnie przed kopiowaniem zrobić
    Kod: vb
    Zaloguj się, aby zobaczyć kod
    ale wtedy inaczej trzeba się odnieść do kopiowanego arkusza, np.:
    Kod: vb
    Zaloguj się, aby zobaczyć kod


    Dodatkowo przed samym skopiowaniem warto pętlą foreach zabezpieczyć się przed próbą skopiowania arkusza, jeżeli jego nazwa już istnieje:
    Kod: vb
    Zaloguj się, aby zobaczyć kod

    0
  • #5 10 Lis 2014 22:00
    lukaszwat
    Poziom 9  

    dziękuje bardzo, za pomoc
    bardzo pomogło

    0