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] masowy import wartości z plików CSV

ZTJ Sweter 28 Kwi 2017 12:39 735 2
  • #1 28 Kwi 2017 12:39
    ZTJ Sweter
    Poziom 3  

    Witam

    Zagadnienie polega na tym, żeby z katalogu podanego w komórce A1, przejść przez wszystkie pliki CSV, których nazwy będą się znajdowały w kolumnie A, w co 3 wierszu. W plikach CSV będą znajdować się dane zebrane w jednej kolumnie, a przepisywanie tych danych ma się odbywać do tego wiersza pliku zestawienie, w którym znajduje się nazwa pliku csv, począwszy od kolumny 3.

    Oto co do tej pory udało mi się zbudować.

    Kod: vbscript
    Zaloguj się, aby zobaczyć kod


    O ile dobrze rozumiem linia
    Kod: vbscript
    Zaloguj się, aby zobaczyć kod

    oznacza, że domyślnie aktywny jest ten nowootwarty plik. W związku z tym odwołoanie Komórka in Range odnosi się do niego i w kolejnej linii
    Kod: vbscript
    Zaloguj się, aby zobaczyć kod
    "
    chciałbym żeby pętla wykonała krok w postaci przepisania z rozpatrywnej komórki pliku CSV wartość do komórki o współrzędnych (i, j) w pliku zestawienie_test.
    To że tu wstawione jest błędne już wiem. Proszę szanownych forumowiczów o podanie poprawnej komendy, lub linka do opracowania tego typu zagadnień, jak przepisywanie komórek między plikami, który pomógłby mi się uporać z tym we własnym zakresie. Przeglądanie rozwiązanych przykładów jest nieefektywne, a wręcz momentami odnoszę wrażenie, że jałowe.

    0 2
  • #2 28 Kwi 2017 15:51
    JRV
    Specjalista - VBA, Excel

    ZTJ Sweter napisał:
    i = 0

    ZTJ Sweter napisał:
    Workbooks(zestawienie_test.xlsm).Cells(i, j)

    wiersz nie moze byc zero

    Dodano po 4 [minuty]:

    ZTJ Sweter napisał:
    Set IndexSheet = ThisWorkbook.ActiveSheet

    logicznie jest zamiast
    For Each Wiersz In Range("A2:A1000")
    to
    For Each Wiersz In IndexSheet.Range("A2:A1000").Cells

    Dodano po 1 [minuty]:

    For Each Wiersz - faktycznie 'dla kazdej komorki'

    0
  • #3 01 Maj 2017 15:59
    wolfau
    Poziom 10  

    Witam,

    można spalić sporo kalorii w ten sposób, ja sugeruję nieco inne rozwiązanie, na pewno skuteczne, elastyczne. wg mnie świetne.
    Cóż - sam swego czasu pisałem i poprawiałem makra, które zrzucały mi dane do skoroszytu, ale jak sprawdzicie to rozwiązanie - sami dojdziecie do wniosku, że nie warto....
    łączyłem czasem nawet 200-300 plików w ten sposób i śmigało aż miło.

    Pobieracie poniższy dodatek. Instalacja nie wymaga praw admina:

    [VBA] masowy import wartości z plików CSV

    a potem naprawdę intuicyjnie zadziała sam. W razie w - jest stronka w dolnej części zrzutu, gdzie można doczytać szczegóły.

    pozdrawiam serdecznie

    JK

    1