Can't figure out passing and returning arrays

D

Dave B

I'm trying to make my function return an array of strings and can't
seem to get it to work. I get Error 9, subscript out of range. The
error occurs on the line "strArray(i) = str"
Here is the relevant part of the code:

Sub CompareLabels(str1 as String)
Dim strWords1() As String
strWords1 = MakeArrayOfWords(str1)
End Sub

Private Function MakeArrayOfWords(ByVal str As String) As String()

Dim i As Integer, intSpace As Integer, intLength As Integer,
strArray() As String
If str <> "" Then
Do
i = i + 1
intSpace = InStr(1, str, " ", vbTextCompare)
If intSpace > 0 Then
strArray(i) = Left(str, intSpace)
intLength = Len(str) - intSpace
str = Right(str, intLength)
Else
strArray(i) = str
End If
Loop Until intSpace = 0
MakeArrayOfWords = strArray
End If

End Function


Can anyone help? Thanks.

P.S. I suck at working with arrays.
 
B

Bob Phillips

Sub CompareLabels(str1 As String)
Dim strWords1() As String
strWords1 = Split(str1)
End Sub


--
HTH

Bob Phillips

(remove nothere from email address if mailing direct)
 
J

Jim Thomlinson

Purely for reference the array you were trying to create was dynamic. This is
to say that you did not specify the size of the array when you created it. In
this case you need to use "ReDim Preserve" each time you add an element to
the array... Split is the way to go in this case... but for your future
reference, look up "Redim Preserve"
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top