Elektroda.pl
Elektroda.pl
X

Search our partners

Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

vba - Eksport pliku xls do txt

BlooQ 10 Jan 2016 13:34 1617 7
  • #1
    BlooQ
    Level 7  
    Witam
    Procedura mojego zadanie wygląda następująco.
    1. Wczytuje plik txt do excela
    2. "Obrabiam do wg. swoich potrzeb
    3. Eksportuje dane do txt, nadpisując plik importowany.

    1 makro do wczytywania mam napisane. Problem jest jednak z drugim, ponieważ muszę wyeksportować tylko dane z kolumn od a do i. Problem drugi to jak nadpisywać plik txt bez konieczności pamiętania który plik się obrabiało. Myślałem że może przy wczytywaniu zapisywał by nazwę pliku do jakiejś komórki a przy eksporcie zapisywał by plik nazwą z tej komórki. W konsekwencji system zapytałby czy chce nadpisać plik. Ktoś pomoże W załączniku xls z danymi do eksportu. Poniżej kod importu.
    Code: vb
    Log in, to see the code
  • #2
    JRV
    VBA, Excel specialist
    Metoda SaveAs nie dobrze?
  • #3
    BlooQ
    Level 7  
    Niestety nie. Bo w folderze będą np: 3 plik A,B,C i użytkownik wczyta plik A obrobi go i w momencie eksportu ponownie do txt będzie musiał pamiętać że był to plik A. Powiem też szczerze że nie wiem jak napisać makro które będzie eksportować plik do txt ale tylko wybrane kolumny.
  • Helpful post
    #4
    adamas_nt
    Moderator of Programming
    Musisz to odwrócić. Najpierw zapamiętanie nazwy pliku: zapisz w ukrytym arkuszu wartość '.SelectedItems(1)' (path+filename) i użyj jako argument 'Open' (Append lub Output) przy zapisywaniu. Jeśli wszystko odbywa się w jednej sesji, możesz przypisać do zmiennej globalnej.

    String do zapisu (wiersz arkusza) poskładaj w wewnętrznej pętli For. Żeby było zgodnie, rozdziel vbTab'em.

    I... to wszystko.

    Coś na wzór:
    Code: vbscript
    Log in, to see the code
  • #5
    BlooQ
    Level 7  
    Wszystko się zgadza, ale podczas testów odkryłem inny problem. Sam import trwa bardzo długo ( importuje ponad 2000 wierszy). Można tą procedurę jakoś usprawnić ?
  • #6
    JRV
    VBA, Excel specialist
    Nie rozumiem, dlaczego nie można otworzyć pliku tekstowego w Excel,
    zamiast 'Open .SelectedItems(1) For Input As #1'
    więcej póla oddzielony Tab'em
    nastepnie SaveAs xlText
  • #7
    BlooQ
    Level 7  
    Pewnie można, ale jestem początkujący w temacie i potrzebuje trochę czasu i prób żeby sobie to poukładać.
  • #8
    JRV
    VBA, Excel specialist
    Nagraj makro
    File - Open - (typ plikow TextFiles(*.prn; *.txt; *.csv) - wybierz plik
    i dopasuj