webForumDet fria alternativet

Array i Excel

3 svar · 249 visningar · startad av Broskan

BroskanMedlem sedan mars 2000126 inlägg
#1

Jag undrar varför det här inte funkar i Excel97 men i Excel2000. Jag vill dela upp en sträng till en array separerad med ":". Är det så att Split inte fungerar i äldre versioner.


strTmp = "123:124:125:126"
arrTmp = Split(strTmp, ":")
MsgBox UBound(arrTmp)

Det blir error på Split funktionen. Hur skall man lösa det?

//Broskan

XL-DennisMedlem sedan juni 200290 inlägg
#2

Broskan,

Split-funktionen introducerades i version 2000.

Följande funktion kan vara dig behjälplig:

Function Split97(sString As String, _
  Optional sDelim As String = " ", _
  Optional ByVal Limit As Long = -1, _
  Optional Compare As Long = vbBinaryCompare) As Variant

  Dim vOut As Variant
  Dim StrLen As Long
  Dim DelimLen As Long
  Dim Lim As Long
  Dim N As Long
  Dim p1 As Long
  Dim p2 As Long

  StrLen = Len(sString)
  DelimLen = Len(sDelim)
  ReDim vOut(0 To 0)

  If StrLen = 0 Or Limit = 0 Then

  ElseIf DelimLen = 0 Then
    vOut(0) = sString

  Else
    Limit = Limit - 1 
    N = -1
    p1 = 1

    Do While p1 <= StrLen
      p2 = InStr(p1, sString, sDelim, Compare)
      If p2 = 0 Then p2 = StrLen + 1

      N = N + 1
      If N > 0 Then ReDim Preserve vOut(0 To N)

      If N = Limit Then
        vOut(N) = Mid$(sString, p1)
        Exit Do
      Else
        vOut(N) = Mid$(sString, p1, p2 - p1)
      End If

      p1 = p2 + DelimLen  
    Loop
  End If
  Split97 = vOut
End Function

...och John Walkenbachs lösningsförslag visas här:
http://www.j-walk.com/ss/excel/tips/tip32.htm

BroskanMedlem sedan mars 2000126 inlägg
#3

Super Dennis!

Det var just vad som behövdes. Nu fungerar det galant.
Har du det tipset på din sida annars kanske det kunde vara nåt att lägga in.

//Broskan

XL-DennisMedlem sedan juni 200290 inlägg
#4

Broskan,

Det liksom mycket annat kommer successivt att läggas ut :)

F n är det StarCalc 6.0 för Windows som är "het" för mig.

137 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)