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

EXCEL - Pobieranie danych z pliku TXT w tym samym katalogu.

wic1 16 Sty 2013 14:36 3342 4
REKLAMA
  • #1 11796787
    wic1
    Poziom 14  
    Posty: 538
    Ocena: 60
    Witam,

    Mam taki kawałek makra, który exportuje mi konkretny format plików do excela...

    Mam cztery pytania do tego, ponieważ nie bardzo ogarniam vbs'a na tyle by wpiąć w to kawałek kodu, który zadziała :/ (acz pracuję nad tym)


    Generalnie to co robi, to pobiera plik txt, formatuje go odpowiednio po spacjach jako separator, usuwa zbędne kolumny a następnie wkleja.

    1. Co zrobić by poniższy zaczytywał plik z tego samego katalogu, w którym znajduje się plik excel? (jakoś z automatu by to czytał)
    Obecnie rozwiązałem to na zasadzie, czytaj z
    C:\lsuser_hostname01.txt


    REKLAMA


    2. Wspomniane pliki z defaultu nazywają się tak:
    C:\lsuser_hostname01_01_16_2013.txt

    Nazywam go po układzie
    lsuser_`hostname`_`date +"%m_%d_%Y"`.txt
    czyli hostname, data. Czy dało by się tak by zaczytywał plik o takim układzie, z ostatnią datą? Wiem, to już wyższa szkoła jazdy dlatego raczej tylko opcjonalnie pytam :P

    3. Za każdym razem otwiera mi arkusz w którym formatował mi te dane i z którego wklejał mi te dane. Na koniec muszę go zamknąć i widzę 'czy napewno nie chcesz zapisać pliku 'bla bla''... nie da się ominąć tego pytania?:P

    4. Co zrobić, by wynik wpisywał mi samodzielnie w komórkę A2, tzn od tej komórki.? Obecnie odpalenie makra powoduje wyplucie wyniku licząc od miejsca, które zaznaczymy :P

    Kod: text
    Zaloguj się, aby zobaczyć kod


    PLZ dajcie znać, co o tym sądzicie ;P
    Pozdrawiam!

    Proszę umieszczać kod w znacznikach syntax. Opcja Listing kodu. [adamas_nt]
  • REKLAMA
  • #2 11798154
    adamas_nt
    VIP Zasłużony dla elektroda
    Posty: 5320
    Pomógł: 1508
    Ocena: 659
    1. Pobrać lokalizację pliku (musi być już wcześniej zapisany), metodą Thisworkbook.Path & "/"

    2. Tak, dałoby się. Należy w pętli pobrać nazwy plików do tablicy, wyekstrahować daty z nazw i wybrać tę najnowszą.

    3. Da się. Wystarczy wyłączyć ostrzeżenia przed linią z poleceniem zamknięcia i włączyć za. Application.DisplayAlerts=False/True

    4. Wyrzucić wszystkie zbędne "Select-Copy-Paste" na rzecz przypisania.
  • REKLAMA
  • #3 11825511
    wic1
    Poziom 14  
    Posty: 538
    Ocena: 60
    Hejka,
    Dzięki za odpowiedź!
    Przyznam, że ogarniam teraz kilka rzeczy na raz ale postaram się wdrożyć :)

    1. Generalnie nie ogarniam programowania w VBSie (zakładam, że to co dograło makro to banał gdyby robić to z palca acz... nie robiłęm tego wcześniej). Poczytam w wolnej chwili a potem dopytam :)

    2. Tak jak w 1... pętlę będę tu pisał pewnie tydzień :/ noo ale z czasem może zacznę to czaić. Acz dzięki i tak :)

    3.

    Coś takiego?
    Kod: text
    Zaloguj się, aby zobaczyć kod


    4. Pytam orientacyjnie bo tego excela przed nosem nie mam. Czy coś we ten deseń??
    Kod: text
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #4 11938979
    wic1
    Poziom 14  
    Posty: 538
    Ocena: 60
    Witam!
    Chyba zacząłem łapać bo to zaczyna działać i VBS już robi wszystko sam :)
    Teraz (w związku z tym) szukam:
    - Ignorowanie ERRORA (np nie znalazł pliku do załadunku)
    - by pytał o położenie pliku z którego ma zaczytać dane
    - jak sprawić by czytał z ukrytego arkusza?
    obecnie w VBS mam zwyczajnie Sheets("nazwa_arkusza").Visible = False /True które się odpala przed makrem i chowa arkusz po jego wykonaniu...
    A bym wolał, by umiał czytać bez otwierania arkusza ;P
    - podobnie z polami w arkuszu, jak chowamy arkusz z ktorego czyta to wartość widzi jako 0


    Any idea?

    Regards~!!~~
  • #5 11939160
    marcinj12
    Poziom 40  
    Posty: 3404
    Pomógł: 1024
    Ocena: 250
    Obsługa błędów: poczytaj o On Error GoTo ...
    Otwieranie pliku: przykład tutaj
REKLAMA