Check if first character of string is in array

J

Jonathan

Hello.

The code below works correctly except I need it to determine if a string
begins with another string stored in an array, not contains the string
stored in the array. For example

If the data is Should return Actually Returns

112 112 112
201 115 201
115 183 115
183 183
254
390

here is the code that I have modified so far from another posting here.

Dim rng As Range, cell As Range, arrVar As Variant
Dim strAddress1 As String, rngUnion As Range
Set rng = Range("Main!c:c")
For Each arrVar In Array("1", "2")
Set cell = rng.Find(arrVar, LookIn:=xlValues, Lookat:=xlPart,
MatchCase:=True)
If Not cell Is Nothing Then
strAddress1 = cell.Address
Do
If rngUnion Is Nothing Then
Set rngUnion = cell
Else
Set rngUnion = Union(cell, rngUnion)
End If
Set cell = rng.FindNext(cell)
Loop While Not cell Is Nothing And _
cell.Address <> strAddress1
End If
Next arrVar
If Not rngUnion Is Nothing Then
rngUnion.EntireRow.Copy
End If

Any help would be appreciated.

Thanks

Jonathan
 
T

Tom Ogilvy

It should return
112 starts with 1
201 starts with 2
115 starts with 1
183 starts with 1
254 starts with 2

Maybe you should make it clearer what your criteria is.

Regards,
Tom Ogilvy
 
J

Jonathan

You are correct, the output should be what you listed. For posting purposes
I was planning on only putting one value in the array. Sorry about the
confusion.

Jonathan
 
T

Tom Ogilvy

I would use:

Set cell = rng.Find(arrVar & "*", LookIn:=xlValues, _
Lookat:=xlWhole, MatchCase:=True)

Include a wildcard on the end of the search term. Look at xlWhole

This has worked for me in similar situations.
 
J

Jonathan

That worked perfectly.

Thanks

Jonathan

Tom Ogilvy said:
I would use:

Set cell = rng.Find(arrVar & "*", LookIn:=xlValues, _
Lookat:=xlWhole, MatchCase:=True)

Include a wildcard on the end of the search term. Look at xlWhole

This has worked for me in similar situations.
 

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