Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Europejski lider sprzedaży techniki i elektroniki.
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

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

mirkolo7 26 Sty 2012 08:59 1872 4
  • #1 26 Sty 2012 08:59
    mirkolo7
    Poziom 8  

    Witam

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

    Kod: vb
    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

    0 4
  • #2 26 Sty 2012 09:38
    adamas_nt
    Moderator Programowanie

    Zamień string na liczbę i sformatuj komórki (ilość po przecinku)...

    Kod: vb
    Zaloguj się, aby zobaczyć kod

    0
  • #3 26 Sty 2012 10:05
    mirkolo7
    Poziom 8  

    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: vb
    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

    0
  • #4 26 Sty 2012 10:17
    adamas_nt
    Moderator Programowanie

    Spróbuj połączyć obie instrukcje warunkowo. Np

    Kod: vb
    Zaloguj się, aby zobaczyć kod

    0
  • #5 26 Sty 2012 10:42
    mirkolo7
    Poziom 8  

    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,

    0
TME logo Szukaj w ofercie
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME
TME Logo