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, makro, funkcja - kopiowanie i usuwanie znaków w komórce.

olejnik_mac 01 Lip 2011 13:06 6348 6
  • #1 01 Lip 2011 13:06
    olejnik_mac
    Poziom 8  

    Mam następującą rozkminkę. W komórce A1 mam ciąg znaków np. TR\lodówka Teraz do komórki B1 muszę wyciągnąć z A1 wyraz lub ciąg wyrazów bez znaków nie będących literami jeśli takie znaki nieliterowe występują np. lodówka a w komórce A1 ma zostać tylko TR.

    Próbowałem z wbudowanych funkcji excela do rozdzielenia znaków tj. w komórce B1 =PRAWY(A1;DŁ(A1)-2) lecz efek nie jest taki jaki bym chciał ponieważ po pierwsze zostaje w komórce A1 to co było (a potrzebuję tylko dwa pierwsze znaki tj. TR) a w komórce B1 potrzebuję opis (tekst) bez znaków (z przykładu "lodówka" bez znaku "\").

    Chyba przy pomocy formuł wbudowanych nic nie zdołam a w VBA dopiero raczkuję.

    Czy może ktoś miał podobny przypadek do rozwiązania lub zna rozwiązanie byłbym wdzięczny. Może być kod VBA.

    0 6
  • #3 01 Lip 2011 13:50
    olejnik_mac
    Poziom 8  

    Niestety nie. Chodzi o to aby po wykonaniu makra w komórce A1 (jako aktywnej) zostało TR a do B1 przeniosło lodówka.

    0
  • Pomocny post
    #4 01 Lip 2011 13:59
    ThomasGP
    Poziom 11  

    A nie możesz wyniki przenieść na drugi arkusz?

    Wtedy tylko zmieniasz formułę:

    Code:
    =LEWY(Arkusz1!A1;2)
    
    =PRAWY(Arkusz1!A1;DŁ(Arkusz1!A1)-3)


    Czy musisz na tym samym arkuszu kategorycznie pozostać?

    EDIT:
    Zrobiłem specjalnie dla Ciebie makro ;)
    Kod: vb
    Zaloguj się, aby zobaczyć kod


    Masz jeszcze plik jakbyś potrzebował.

    0
  • #5 03 Lip 2011 10:55
    olejnik_mac
    Poziom 8  

    Dziękuje ThomasGP tak wlaśnie o to mi chodziło tylko że jak uruchamiam to mi błąd pojawia sie o treści: Run-time error '5': Invalid procedure call or argument , w kodzie zaznacza wiersz: Cells(i, 2) = Right(Cells(i, 1), Len(Cells(i, 1)) - 3) i nie wiem o co w tym chodzi? Czy jakaś zmienna musi być zadeklarowana czy co?

    Na marginesie to VBA to fajna sprawa tylko musze dużo poćwiczyć.

    0
  • Pomocny post
    #6 03 Lip 2011 12:57
    adamas_nt
    Moderator Programowanie

    Zdaje się, że badany tekst jest krótszy niż 3 znaki. Wyłącz obsługę błędów (On Error Resume Next) lub sprawdzaj długość stringa. Powinien mieć co najmniej 4 znaki.

    0
  • #7 05 Lip 2011 09:08
    olejnik_mac
    Poziom 8  

    Zadanie rozwiązano. Zamykam temat. Dziękuję za pomoc.

    0