Wątek przeniesiony 2021-09-16 10:16 z Inne języki programowania przez cerrato.

Skrypt rozdzielający ciągi w excelu

0

Cześć!

Mam w komórkach C2-Cx numery telefonów.
Jeśli w komórce jest więcej jak jeden telefon to są rozdzielone za pomocą alt + Enter ( nie pamiętam jak się to nazywa).
Potrzebuję skryptu który odnajdzie numery zapisane jako 123456789 i zamieni na 123 456 789 i analogicznie 221234567 na 22 123 45 67

0

Oba ciągi liczb mają po 9 cyfr, skąd wiadomo, że jeden ma wyglądać tak 123 456 789, a drugi tak 22 123 45 67? Chodzi mi o spację pomiędzy cyframi

0

Jeden to numer stacjonarny. Zaczyna się na konkretne liczby. U mnie 17.

0

Podeślij przykładowego Excela z danymi.

1

Można tak:

Dim cmax As Long
Dim i As Long
Dim telefon As String
Dim telofony() As String
Dim ti As Integer

'numer komórki w kolumnie c do której czytasz
cmax = 3

'Zacznij pętle po kolumnie c od 1 do cmax
For i = 1 To cmax
    'Podziel wpisy po kombinacji alt+enter
    telefony = Split(Cells(i, 3), vbLf)
    'Zacznij formatować po kolei telefony
    For ti = 0 To UBound(telefony)
        'Przypisz do zmiennej telefon przerabiany numer pozbawiony spacji
        telefon = Replace(telefony(ti), " ", "")
        'Jeżeli zaczyna się na 17 to wez maskę numeru stacjonarnego
        If Left(telefon, 2) = "17" Then
            telefony(ti) = Format(telefon, "## ### ## ##")
        Else
            telefony(ti) = Format(telefon, "### ### ###")
        End If
    Next
    'Przypisz do komórki telefonu łącząc znakiem vbLf
    Cells(i, 3) = Join(telefony, vbLf)
Next


0

Działa super.
Powiedz mi jeszcze proszę jak przefiltrować kolumnę żeby pokazywała tylko liczby typu 123456789 a nie 123 456 678 ?

0

Filtr na kolumnie żeby nie zawierał spacji

1 użytkowników online, w tym zalogowanych: 0, gości: 1