ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   How do I handle #Value in VBA? (https://www.excelbanter.com/excel-programming/343042-how-do-i-handle-value-vba.html)

Kurt

How do I handle #Value in VBA?
 
Hi Everyone,

In VBA, I'm searching for a substring in a cell using worksheet function FIND.
If FIND does not find the substring it returns a #Value (instead of 0 which
is what I want)

I'm not sure how to handle this.

here's my code...
....
With ActiveWorkbook.Worksheets("Sheet1")
Do While Not IsEmpty(Cells(i, 1))
If (Application.WorksheetFunction.Find("xyz", Cells(i, 7))
< 0) Then
Worksheets("Sheet2").Cells(j, 1) =
Worksheets("Sheet1").Cells(i, 1)
i = i + 1
j = j + 1
End If
Loop
End With

If "xyz" does not exist, the code crashes. =( instead of just continuing

Thanks As Always!!! Kurt

sebastienm

How do I handle #Value in VBA?
 
If you just need to know whether or not a string matches a simple pattern,
you can use the LIKE operator:
If Cells(i, 7) LIKE "*xyz*" then
Here i use the wildcard character '*' meaning 'any number of characters'
therefore the expression means "cell contains the substring xyz or XYZ"

From the online help, other wildcard chars:
? -- Any single character.
*-- Zero or more characters.
#-- Any single digit (0€“9).
[charlist] -- Any single character in charlist.
[!charlist] -- Any single character not in charlist

--
Regards,
Sébastien
<http://www.ondemandanalysis.com


"kurt" wrote:

Hi Everyone,

In VBA, I'm searching for a substring in a cell using worksheet function FIND.
If FIND does not find the substring it returns a #Value (instead of 0 which
is what I want)

I'm not sure how to handle this.

here's my code...
...
With ActiveWorkbook.Worksheets("Sheet1")
Do While Not IsEmpty(Cells(i, 1))
If (Application.WorksheetFunction.Find("xyz", Cells(i, 7))
< 0) Then
Worksheets("Sheet2").Cells(j, 1) =
Worksheets("Sheet1").Cells(i, 1)
i = i + 1
j = j + 1
End If
Loop
End With

If "xyz" does not exist, the code crashes. =( instead of just continuing

Thanks As Always!!! Kurt


Access101

How do I handle #Value in VBA?
 
Let me know how this goes:

i = 1
j = 1
Do While Not IsEmpty(Cells(i, 1))
If InStr(Cells(i, 7), "xyz") Then
Worksheets("Sheet2").Cells(j, 1) = Worksheets("Sheet1").Cells(i, 1)
i = i + 1
j = j + 1
End If
Loop


"sebastienm" wrote:

If you just need to know whether or not a string matches a simple pattern,
you can use the LIKE operator:
If Cells(i, 7) LIKE "*xyz*" then
Here i use the wildcard character '*' meaning 'any number of characters'
therefore the expression means "cell contains the substring xyz or XYZ"

From the online help, other wildcard chars:
? -- Any single character.
*-- Zero or more characters.
#-- Any single digit (0€“9).
[charlist] -- Any single character in charlist.
[!charlist] -- Any single character not in charlist

--
Regards,
Sébastien
<http://www.ondemandanalysis.com


"kurt" wrote:

Hi Everyone,

In VBA, I'm searching for a substring in a cell using worksheet function FIND.
If FIND does not find the substring it returns a #Value (instead of 0 which
is what I want)

I'm not sure how to handle this.

here's my code...
...
With ActiveWorkbook.Worksheets("Sheet1")
Do While Not IsEmpty(Cells(i, 1))
If (Application.WorksheetFunction.Find("xyz", Cells(i, 7))
< 0) Then
Worksheets("Sheet2").Cells(j, 1) =
Worksheets("Sheet1").Cells(i, 1)
i = i + 1
j = j + 1
End If
Loop
End With

If "xyz" does not exist, the code crashes. =( instead of just continuing

Thanks As Always!!! Kurt


Kurt

How do I handle #Value in VBA?
 
this was the one!

thanks! =)

Kurt

"Access101" wrote:

Let me know how this goes:

i = 1
j = 1
Do While Not IsEmpty(Cells(i, 1))
If InStr(Cells(i, 7), "xyz") Then
Worksheets("Sheet2").Cells(j, 1) = Worksheets("Sheet1").Cells(i, 1)
i = i + 1
j = j + 1
End If
Loop


"sebastienm" wrote:

If you just need to know whether or not a string matches a simple pattern,
you can use the LIKE operator:
If Cells(i, 7) LIKE "*xyz*" then
Here i use the wildcard character '*' meaning 'any number of characters'
therefore the expression means "cell contains the substring xyz or XYZ"

From the online help, other wildcard chars:
? -- Any single character.
*-- Zero or more characters.
#-- Any single digit (0€“9).
[charlist] -- Any single character in charlist.
[!charlist] -- Any single character not in charlist

--
Regards,
Sébastien
<http://www.ondemandanalysis.com


"kurt" wrote:

Hi Everyone,

In VBA, I'm searching for a substring in a cell using worksheet function FIND.
If FIND does not find the substring it returns a #Value (instead of 0 which
is what I want)

I'm not sure how to handle this.

here's my code...
...
With ActiveWorkbook.Worksheets("Sheet1")
Do While Not IsEmpty(Cells(i, 1))
If (Application.WorksheetFunction.Find("xyz", Cells(i, 7))
< 0) Then
Worksheets("Sheet2").Cells(j, 1) =
Worksheets("Sheet1").Cells(i, 1)
i = i + 1
j = j + 1
End If
Loop
End With

If "xyz" does not exist, the code crashes. =( instead of just continuing

Thanks As Always!!! Kurt



All times are GMT +1. The time now is 02:04 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com