logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Makro-otwieranie pliku i kopiowanie arkusza

zbysiomysio 12 Lut 2017 21:47 8595 12
REKLAMA
  • #1 16274176
    zbysiomysio
    Poziom 6  
    Posty: 249
    Ocena: 40
    Witam
    Mam plik 1.xls. Jak napisać kod do makra, które otwierałoby plik z pulpitu (wskazany przeze mnie), kopiowałoby wszystko z pierwszego arkusza z kolumn A:N i wklejało wszystko do arkusza Dane do kolumn A:N w pliku 1.xls?
  • REKLAMA
  • #2 16274717
    adamas_nt
    VIP Zasłużony dla elektroda
    Posty: 5320
    Pomógł: 1508
    Ocena: 659
    zbysiomysio napisał:
    Jak napisać kod do makra
    1. Nagraj makro wykonujące w/w czynności, przeanalizuj.
    2. Zerknij tutaj, następnie tutaj
    3. Połącz, usuń nadmiar kodu
    4. Jak coś nie będzie działać, opisz na forum.
  • #3 16274767
    zbysiomysio
    Poziom 6  
    Posty: 249
    Ocena: 40
    Dzięki za nakierowanie. Nagrałem i przerobiłem makro j.n. Mam tylko jedno pytanie, t.j. plik źródłowy z makrem będzie uruchamiany na różnych komputerach. Czy jest możliwe, aby na każdym komputerze domyślnie pokazywało się okienko do wskazania pliku z pulpitu (aby użytkownicy nie musieli szukać pliku, który ma być skopiowany, a mieli od razu podgląd na pulpit na którym będzie plik z którego będą kopiowane kolumny)?
    Kod: VBScript
    Zaloguj się, aby zobaczyć kod

    Moderowany przez adamas_nt:

    Proszę umieszczać kod pomiędzy znacznikami Syntax

  • REKLAMA
  • #4 16274821
    adamas_nt
    VIP Zasłużony dla elektroda
    Posty: 5320
    Pomógł: 1508
    Ocena: 659
    FileDialog ma wiele właściwości. Np:
    .InitialFileName = Environ("HOMEPATH") & "\Desktop\"
  • #5 16274875
    zbysiomysio
    Poziom 6  
    Posty: 249
    Ocena: 40
    adamas_nt napisał:
    FileDialog ma wiele właściwości. Np:
    .InitialFileName = Environ("HOMEPATH") & "\Desktop\"


    Dzięki za pomoc
    Czy ktoś może mi jeszcze pomóc jaką należy podać procedurę w powyższym makrze , aby po skopiowaniu kolumn plik z którego zostały skopiowane kolumny został zamknięty, a pozostał otwarty plik do którego zostały wklejone kolumny?
  • #6 16276128
    clubs
    Poziom 38  
    Posty: 2219
    Pomógł: 629
    Ocena: 406
    Witam
    Nie rozumiem tylko co to jest za skoroszyt
    Windows("Za+é¦ůcznik nr 2 rachunku umowy zlecenie.xls").Activate?
    Makro masz w jednym otwierasz drugi i kopiujesz do trzeciego pliku?
  • REKLAMA
  • #7 16276194
    zbysiomysio
    Poziom 6  
    Posty: 249
    Ocena: 40
    clubs napisał:
    Witam
    Nie rozumiem tylko co to jest za skoroszyt
    Windows("Za+é¦ůcznik nr 2 rachunku umowy zlecenie.xls").Activate?
    Makro masz w jednym otwierasz drugi i kopiujesz do trzeciego pliku?


    Przepraszam może to jest mało zrozumiałe, ale ja próbuję metodą prób i błędów. Poniżej częściowy kod mojego makra, które wygląda teraz tak:
    Kod: VBScript
    Zaloguj się, aby zobaczyć kod

    Ostatecznie makro to ma kopiować kolumny A:N z pliku wskazanego przeze mnie i wklejać do arkusza "IL" w skoroszycie aplikacja gaz. Chodzi teraz o to, aby po skopiowaniu tych kolumn i ich wklejeniu był zamykany plik z którego zostały skopiowane kolumny, natomiast pozostał otwarty plik aplikacja gaz
  • #8 16276229
    clubs
    Poziom 38  
    Posty: 2219
    Pomógł: 629
    Ocena: 406
    Czyli w aplikacja gaz.xls masz to powyższe makro tak?
  • #9 16276234
    zbysiomysio
    Poziom 6  
    Posty: 249
    Ocena: 40
    clubs napisał:
    Czyli w aplikacja gaz.xls masz to powyższe makro tak?

    Tak
  • #10 16276425
    clubs
    Poziom 38  
    Posty: 2219
    Pomógł: 629
    Ocena: 406
    Kod: VB.net
    Zaloguj się, aby zobaczyć kod
  • #11 16276588
    zbysiomysio
    Poziom 6  
    Posty: 249
    Ocena: 40
    Dzięki . Jeszcze nie opanowałem tego, ale rozumiem, że jeżeli ma wkleić do arkusza 3 to po wkb1.Sheets powinienem wstawić (3)? A co dopisać jeszcze i w którym miejscu, aby przed wklejeniem wyczyściło arkusz 3? Ja miałem to: Sheets("Arkusz3").Select Cells.Clear
    [quote]wkb2.Sheets(1).Columns("A:N").Copy wkb1.Sheets(1).Columns("A:A")[quote]

    Dodano po 13 [minuty]:

    Już wiem, że trzeba poprawić na Sheets(3), tylko czy w tym kodzie da się jeszcze wkleić czyszczenie tego arkusza3 przed wklejeniem
  • REKLAMA
  • #12 16276723
    clubs
    Poziom 38  
    Posty: 2219
    Pomógł: 629
    Ocena: 406
    Kod: VB.net
    Zaloguj się, aby zobaczyć kod
  • #13 16276800
    zbysiomysio
    Poziom 6  
    Posty: 249
    Ocena: 40
    clubs napisał:
    Kod: VB.net
    Zaloguj się, aby zobaczyć kod


    Super
    Dzięki wielkie za pomoc. Zamykam temat.

Podsumowanie tematu

✨ Użytkownik poszukiwał pomocy w napisaniu makra w Excelu, które otwiera plik z pulpitu, kopiuje dane z pierwszego arkusza (kolumny A:N) i wkleja je do arkusza "Dane" w pliku 1.xls. Otrzymał wskazówki dotyczące użycia obiektu FileDialog do wyboru pliku oraz sposobu kopiowania i wklejania danych. Użytkownicy zasugerowali dodanie funkcji do czyszczenia arkusza przed wklejeniem oraz zamknięcia pliku źródłowego po skopiowaniu danych. W końcu użytkownik uzyskał działające makro, które spełnia jego wymagania.
Podsumowanie wygenerowane przez AI na podstawie treści dyskusji.
REKLAMA