środa, 14 maja 2008

Usuwanie spacji z ciągu znaków

W zmiennej cyfry można też podać inne znaki a funkcja będzie usuwać również inne znaki...

Sub usun_spacje()
  Dim s As String
  Dim sr As String
  sr = ""
  s = str(Selection.Value)
  cyfry = " "
  lcyf = Len(s)

  For i = 1 To lcyf
    Z = Mid(s, i, 1)
    If Z Like cyfry Then
    Else
      sr = sr + Z
    End If
  Next
  Selection.Value = sr
  Selection.Offset(1, 0).Select
End Sub

Można też przypisać jakiś klawisz skrótu i będzie znacznie szybciej...

10 komentarze:

  1. A wystarczy komenda Trim()

    OdpowiedzUsuń
  2. niestety nie mogę się zgodzić - Trim( ) usuwa białe znaki z końców ciągu a nie ze środka - to po pierwsze...

    spotkałem się jednak dzisiaj z przypadkiem, gdy arkusz budowany na podstawie kopiuj/wklej z tabeli ze strony WWW nie reagował na funkcje testowe Excela pomimo formatu komórki jako tekst... dziwne ale prawdziwe

    więc nie zawsze jest tak prosto jak Ci się wydaje... :)
    Pozdrawiam

    OdpowiedzUsuń
  3. Witam
    Mam taki problem. Plik excela zawierający makra blokujące funkcje (prawy klawisz myszki, podgląd wydruku itp), mógłbyś mi pomóc? Pozdr

    OdpowiedzUsuń
  4. Jasne...
    wyślij szczgóły - plik
    sprawdzę czy jest na hasło - jeśli tak to pozostaje tylko hakownie
    hasła na edycję mark...
    jeśli nie to można makra zmodyfikować

    masz maila ?

    OdpowiedzUsuń
  5. Fajnie:) Hasła nie ma, można modyfikowac makra, tylko właśnie nie bardzo się na tym znam. Na jaki adres mam wysłać plik?

    OdpowiedzUsuń
  6. excel@10g.pl

    Na tej stronie zamieszczę rozwiązanie...

    OdpowiedzUsuń
  7. oczywiście o ile się uda :P

    OdpowiedzUsuń
  8. Dowolne znaki można usunąć znacznie krótszą funkcją:

    Function usunZnak(napis as string,znak as string)
    dim p() as string

    p= split(napis,znak)
    usunZnak = join(p,"")
    end function

    i już

    OdpowiedzUsuń
  9. Można i tak:
    =WARTOŚĆ(PODSTAW(PODSTAW(A1;ZNAK(160);"");" ";""))

    OdpowiedzUsuń