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 Eksport danych do pliku tekstowego z zachowaniem dwóch cyfr po przecinku

dark03 10 Kwi 2018 12:56 315 6
  • #1 10 Kwi 2018 12:56
    dark03
    Poziom 6  

    Witam. Potrzebuje porady. Znalazłem taki kod dzięki któremu eksportuje dane z pliku excel do txt. Chciałbym aby dane z jednej kolumny np E były zapisywane w pliku tekstowym z zachowaniem dwóch cyfr po przecinku czyli jak w komórce mam 10,1 to żeby w wynikowym pliku też było 10,10 a nie 10,1. Podobnie, jeśli wartość wynosi 12,1 muszę zapisać ją jako 12.10.
    Dzięki za pomoc.

    Kod: vbscript
    Zaloguj się, aby zobaczyć kod

    0 6
  • #2 10 Kwi 2018 13:24
    lanzul
    Poziom 25  

    Z zaokrąglaniem, czy bez ?
    Co w takich przypadkach: 19,19; 25,8963 ?

    Najprostsze co można zrobić, to podmienić poniższą linię (tę zakomentowaną):

    Kod: vba
    Zaloguj się, aby zobaczyć kod

    Tyle, że "to" i zakrągli i "obetnie do dwóch", ale tylko wtedy, gdy cyfr po przecinku jest więcej jak dwie.

    Ps: aha ... no i działać to będzie dla wszystkiego, nie tylko dla "E" ... :D

    Można by więc, np. tak:
    Kod: vba
    Zaloguj się, aby zobaczyć kod

    0
  • #3 10 Kwi 2018 13:29
    Maciej Gonet
    Poziom 31  

    Pokaż jakiś przykładowy plik, bo nie wiadomo, co w nim jest. Czy tam są tylko liczby dziesiętne, z iloma cyframi po przecinku, czy są też liczby całkowite i jak one mają być zapisane? Czy separatorem dziesiętnym ma być kropka, czy przecinek?

    0
  • #6 11 Kwi 2018 12:37
    Maciej Gonet
    Poziom 31  

    W kodzie podanym przez lanzula jest zastosowana bezwzględna numeracja kolumn, więc kolumna E ma tu numer 5. Natomiast w oryginalnym kodzie do pliku tekstowego są zapisywane dane od kolumny C, wobec tego kolumna E będzie miała względny numer 3.
    Jeśli ten układ kolumn jest stały, to wystarczy zmienić 5 na 3, jeśli jest zmienny, to potrzebne byłoby każdorazowe wyliczenie położenia tej kolumny, której formatowanie ma być niestandardowe.

    0
  • #7 11 Kwi 2018 13:59
    lanzul
    Poziom 25  

    :/ ... łeeee ...

    Kod: vba
    Zaloguj się, aby zobaczyć kod

    , gdzie ".Range("c2:f" & ostAD)" = vDane
    Kod: vba
    Zaloguj się, aby zobaczyć kod

    , czyli mamy tylko 4 kolumny (c, d, e, f) ... :) ... to fakt ... :/

    Ps.:
    Jeśli nie masz na początku modułu deklaracji "Option Base 1", to wstaw ją, bo i tak po poprawce na "3", może nie działać, jakbyś chciał.
    Poza tym "tbl = vDane" jest operacją nadmiarową (i zbędną).

    0