Hirdetés

Keresés

Új hozzászólás Aktív témák

  • Pakliman

    tag

    válasz the radish #35165 üzenetére

    Szia!

    Ezt "kényszerből" írtam, mert sokszor volt/van szükségem darabolásra.
    Használható cellában és makróban egyaránt.

    Public Function Darabolt(darabolandó, rész As Long, Optional elválasztó As String = " ", Optional elválasztó_egyben_használandó As Boolean = True, Optional trim As Boolean = True) As String
    Dim delim
    Dim s
    Dim i As Long

    s = IIf(trim, Application.Trim(darabolandó), darabolandó)

    If elválasztó_egyben_használandó Then
    delim = elválasztó
    Else
    delim = Mid(elválasztó, 1, 1)
    For i = 2 To Len(elválasztó)
    s = Replace(s, Mid(elválasztó, i, 1), delim)
    Next i
    End If

    On Error GoTo Hiba
    Darabolt = Split(s, delim)(rész - 1)

    Exit Function

    Hiba:
    Darabolt = ""
    End Function

    Használata:
    darabolandó= "dara bolandó napok"
    rész= lásd eredményeknél
    elválasztó= " n" 'ha nem adod meg, akkor 1 db szóköz
    ' elválasztó_egyben_használandó= ha nem adod meg, akkor IGAZ
    ' trim= ha nem adod meg, akkor IGAZ



    elválasztó_egyben_használandó= HAMIS (=a szóköz is és az n is elválasztóként használandó)
    trim= HAMIS (=feldolgozás előtt a dupla/tripla stb szóközöket NEM cseréli 1 db szóközre)
    eredmény rész=1 --> "dara"
    eredmény rész=2 --> ""
    eredmény rész=3 --> ""
    eredmény rész=4 --> ""
    eredmény rész=5 --> ""
    eredmény rész=6 --> "bola"
    eredmény rész=7 --> "dó"
    eredmény rész=8 --> ""
    eredmény rész=8 --> "apok"

    '-------------------------------------------------
    darabolandó= "dara bolandó napok"
    elválasztó= " n"

    elválasztó_egyben_használandó= IGAZ (=KIZÁRÓLAG a " n" sztring az elválasztó!!)
    trim= IGAZ (=feldolgozás előtt a dupla/tripla stb szóközöket kicseréli 1 db szóközre)
    eredmény rész=1 --> "dara bolandó"
    eredmény rész=2 --> "apok"

  • Fferi50

    Topikgazda

    válasz the radish #35165 üzenetére

    Szia!

    Dim cl as range
    For Each cl In Range("A1:A250").Cells: cl.Value = Mid(cl.Value, InStr(cl.Value, Chr(34)) + 1): Next

    Üdv.

Új hozzászólás Aktív témák

Hirdetés