SPLIT-funktion för Excel 97


I Excel 2000 och senare finns SPLIT-funktionen att tillgå som en inbyggd VBA-funktion. Den praktiska nyttan av funktionen visas bl a i nedanstående angivna tips.

Följande tips kräver SPLIT-funktionen för att fungera i Excel 97:

 

 

Option Explicit

 Sub Dela_Text()

   Dim stText As String

   Dim vaText As Variant

   Dim i As Long

 

   stText = "Att dela på meningar är inte meningsfullt men lärorikt !"

 

   vaText = Split(stText, " ")

 

   For i = LBound(vaText) To UBound(vaText)

      MsgBox vaText(i)

   Next i  

End Sub

 

Function Split(ByVal Text As String, Optional ByVal Delimiter As String = " ", _

      Optional Limit As Long = -1) As Variant

   '© 2002 Alla rättigheter XL-Dennis

 

   'ReDim här ges oss möjlighet att dimensionera om matrisen senare i koden

   'samtidigt som den initiallt är dimensionerad.  

   ReDim stTextDel(0 To 100) As String

   Dim stTextDel() As String

   Dim lnAntal As Long

   Dim lnLangd As Long

   Dim lnStartIndex As Long

   Dim lnSlutIndex As Long

 

   lnLangd = Len(Text)

   lnStartIndex = 1

 

   Do While lnStartIndex <= lnLangd And lnAntal <> Limit

      lnSlutIndex = InStr(lnStartIndex, Text, Delimiter, vbBinaryCompare)

      If lnSlutIndex = 0 Then lnSlutIndex = lnLangd + 1

      If lnAntal > UBound(stTextDel) Then

         ReDim Preserve stTextDel(0 To lnAntal + 99) As String

      End If

 

      stTextDel(lnAntal) = Mid(Text, lnStartIndex, lnSlutIndex - lnStartIndex)

      lnAntal = lnAntal + 1

      lnStartIndex = lnSlutIndex + Len(Delimiter)

   Loop

 

   ReDim Preserve stTextDel(0 To lnAntal - 1) As String

   Split = stTextDel()  

End Function