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.

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

wic1 16 Sty 2013 14:36 2508 4
  • #1 16 Sty 2013 14:36
    wic1
    Poziom 14  

    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

    Code:
    C:\lsuser_hostname01.txt


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

    Nazywam go po układzie
    Code:
    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: vb
    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]

    0 4
  • #2 16 Sty 2013 19:24
    adamas_nt
    Moderator Programowanie

    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.

    0
  • #3 22 Sty 2013 16:43
    wic1
    Poziom 14  

    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: vb
    Zaloguj się, aby zobaczyć kod


    4. Pytam orientacyjnie bo tego excela przed nosem nie mam. Czy coś we ten deseń??
    Kod: vb
    Zaloguj się, aby zobaczyć kod

    0
  • #4 15 Lut 2013 18:15
    wic1
    Poziom 14  

    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~!!~~

    0