Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

[Excel] pobieranie danych z innych plików

Borysek13 09 Nov 2011 21:47 3608 4
  • #1
    Borysek13
    Level 2  
    Witam,
    ponieważ od jakiegoś czasu męczę się ze zbieraniem i kopiowaniem danych z dużej ilości plików w excelu, szukam pomocy aby to zautomatyzować. Kombinowałem z formułami, ale domyślam się, że dużo łatwiej będzie zrobić makro-wiem że taki problem już się przewijał , niestety jestem zupełnie zielony w tym temacie i nie potrafię tego przerobić na swoję potrzeby, więc proszę o pomoc.

    Chciałbym, aby makro pobierało dane z wszystkich plików excel (zamkniętych) znajdujących się na danej sieżce na dysku( także z podkatalogów, jeśli się da). Dane do skopiowania znajdują się w kolumnie B w wierszach od 1 do 23 i mają zostać skopiowane i zebrane w jednym nowym pliku.
  • Helpful post
    #3
    adamas_nt
    Moderator of Programming
    Był ostatnio temat Link, w którym maglowanych było kilka rozwiązań. Kod jest logiczny i łatwy do zaadoptowania. Fakt, nie ma tam nic o podfolderach.

    Do pierwszego poziomu można "dobrać się" Np w ten sposób
    Code: vb
    Log in, to see the code
    Aby przejść głębiej w strukturę, należałoby zadeklarować kolejną zmienną obiektową (FSO) i wewnątrz pętli For zagnieździć kolejną pętlę.
  • #4
    Borysek13
    Level 2  
    Tak jak pisałem jestem zupełnie zielony w makrach.
    problem podfolderów mogę załatwić przekopiowaniem wszystkiego ręcznie do jednego katalogu
    ale co muszę dopisać do makra aby mi kopiowało komórki B1 do B23 z każdego pliku i zebrało to w jednym arkuszu po kolei w kolumnach?
  • #5
    adamas_nt
    Moderator of Programming
    Otwierasz kolejne pliki w pętli, w której należy umieścić licznik numeru kolumny arkusza docelowego. Jeśli znasz nazwę lub indeks arkusza źródłowego (idealnie byłoby, żeby był identyczny w każdym pliku), to przepisujesz zakres, zamykasz plik i... to wszystko. Ewentualnie powtarzasz tę samą operację dla podfolderów, o czym pisałem wyżej.
    Jeśli nazwy lub indeksy w plikach źródłowych są różne, czeka Cię trochę zabiegów z wyszukiwaniem po nagłówkach, kluczowych wartościach, lub t.p.
    Ale o szczegółach, strukturach, organizacji w plikach wiesz tylko Ty, a my możemy palcem pokazać co może, a nie musi w Twoim przypadku zadziałać...

    Moja rada:
    Włącz rejestrator makr i nagraj sobie kopiowanie zakresu z jednego pliku, łącznie z jego otwieraniem i zamykaniem. Wyłącz rejestrator i prześledź kolejne kroki. Takie makro jest nadmiarowe i zwykle wymaga dopieszczenia, ale tym się nie przejmuj. To Twoje makro, więc szybko zrozumiesz o co chodzi. Porównaj nagrany kod z jakimś "zapętlonym" przykładem, a kolor Twojego pojęcia o VBA zmieni się z zielonego na bardziej ciepły.

    Póki co... Na pytanie
    Borysek13 wrote:
    ale co muszę dopisać do makra aby mi kopiowało komórki B1 do B23 z każdego pliku i zebrało to w jednym arkuszu po kolei w kolumnach?
    odpowiedź brzmi: Range("B1:B23")...