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

[VBA EXCEL] Selection.Replace - Błąd zmiany . => ,

mirkolo7 26 Sty 2012 08:59 2745 4
REKLAMA
  • #1 10449587
    mirkolo7
    Poziom 10  
    Posty: 7
    Witam

    Mam kod programu w którym występuje coś takiego

    Kod: text
    Zaloguj się, aby zobaczyć kod


    kod prosty, można rzecz standardowy
    ale generuje mi błąd i nie wiem jak się tego pozbyć

    Przykłady otrzymanych wyników:

    123456789,123456 => 123456789123456 'źle
    123456789.123456789 => 123456789123456000 'źle
    123456789.12 => 123456789,12 'ok
    123456789,12 => 123456789,12 'ok
    123456789.123 => 123456789123 'źle
    123456789.123 => 123456789123 'źle
    123.123456789 => 123123456789 'źle
    123,123456789 => 123123456789 'źle
    1,123456789 => 1123456789 'źle
    1.123456789 => 1123456789 'źle

    czyli jak jest więcej niż 2 miejsca po przecinku to zostaje zmienione, tak że przecinek ląduje na końcu!

    korzystam zazwyczaj z małych liczb, z jednym miejscem po przecinku, czasem z dwoma, więc mi to nie przeszkadzało bo wtedy było ok, ale czasem się zdarza coś z większą ilością i wtedy mam problem:-(

    Windows XP eng
    Excel 2007 eng,
    ustawienia lokalizacyjne PL
  • REKLAMA
  • #2 10449701
    adamas_nt
    VIP Zasłużony dla elektroda
    Posty: 5320
    Pomógł: 1508
    Ocena: 659
    Zamień string na liczbę i sformatuj komórki (ilość po przecinku)...
    Kod: text
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #3 10449784
    mirkolo7
    Poziom 10  
    Posty: 7
    Niestety nie wszystkie komórki są liczbami, wiele jest tekstem i musi tak zostać, (ale kropki na przecinki też ma zmieinć:-))
    wczoraj próbowałem coś takiego, puścić przez zmianą

    Kod: text
    Zaloguj się, aby zobaczyć kod


    zaraz potestuję jeszcze raz VAL()
    wiem że też z tym próbowałem, ale coś musiałem robić nie tak, bo nie wychodziło
  • REKLAMA
  • #4 10449821
    adamas_nt
    VIP Zasłużony dla elektroda
    Posty: 5320
    Pomógł: 1508
    Ocena: 659
    Spróbuj połączyć obie instrukcje warunkowo. Np
    Kod: text
    Zaloguj się, aby zobaczyć kod
  • #5 10449909
    mirkolo7
    Poziom 10  
    Posty: 7
    No niestety też nie

    dla tekstowych dostaję TRUE jako wartość komórki, ale to zaraz coś pomyślimy

    ale jest inny problem w części komórek jest np.

    1234,5x678,9

    val(1234,5x678,9) =>1234,5

    a to też nie jest dobrze

    (potrzebuję zmienić tylko 1234.5x678.9 =>1234,5x678,9)


    i chyba muszę wrzucić wszystko do tablicy, robić operację na tablicy i z powrotem do arkusza, wykonywanie makra na kilku tysiącach wierszy w tej postaci trwa dość długo:-(


    -------------------
    A może trzeba wyłączyć jakąś zmienną systemową?
    jak zmieniałem , na . to było możliwe w VBA dopiero po
    Application.UseSystemSeparators = False

    Robiąc zmiany w arkuszu z polecenia zmień, wszystko działa prawidłowo,
    dopiero w VBA jest problem,
REKLAMA