Forum

Notifications
Clear all

[If InStr....or......or.....or.....or....etc... then] Short write VBA Code request

4 Posts
2 Users
0 Reactions
115 Views
(@kpmsivaprakasam2003)
Posts: 15
Eminent Member
Topic starter
 

Hi,

Sorry for Poor English Grammer

I am using Excel 2013 32 bit

if word string (" FRZ" or "FREEZER" or "FREZ" or "FRE" or "FREEZ" or "FR." or "FREEZETR" or "FZR" or "FRS" or "FEZ" or "FSD" or "FS ") available in Range ("S2:S45265") then return the word "Freezer"

But trying code, but not work "If InStr(cell.Value, ["FRZ","FREEZER","FREZ","FRE","FREEZ","FR.","FREEZETR","FZR","FRS","FEZ","FSD","FS "]) > 0 Then"

I used longly write code below in bold, I need any short write code for string word (finding) [If InStr....or......or.....or.....or....etc... then]

Macro Code:

Sub Search_Range_For_Text()
'loop through a range of cells to test if the cells contain some text:

Dim cell As Range

For Each cell In Range("S2:S45265") 'Searching Column
If InStr(cell.Value, "FRZ") > 0 Or InStr(cell.Value, "FREEZER") > 0 Or InStr(cell.Value, "FREZ") > 0 Or InStr(cell.Value, "FRE") > 0 Or InStr(cell.Value, "FREEZ") > 0 Or InStr(cell.Value, "FR.") > 0 Or InStr(cell.Value, "FREEZETR") > 0 Or InStr(cell.Value, "FZR") > 0 Or InStr(cell.Value, "FRS") > 0 Or InStr(cell.Value, "FEZ") > 0 Or InStr(cell.Value, "FSD") > 0 Or InStr(cell.Value, "FS ") > 0 Then
cell.Offset(0, 8).Value = "Freezer" 'Result Column
End If
Next cell

End Sub

Kindly anybody helps me for short write VBA code...
Thanks for advance

 
Posted : 12/12/2020 12:38 am
(@catalinb)
Posts: 1937
Member Admin
 

Should be:
If InStr(1, "FRZ, FREEZER, FREZ, FRE, FREEZ, FR., FREEZETR, FZR, FRS, FEZ, FSD, FS ", cell.Value) > 0 Then

 
Posted : 12/12/2020 2:29 am
(@kpmsivaprakasam2003)
Posts: 15
Eminent Member
Topic starter
 

Hi, Tnq for help,

I try above your code, but the result has come the blank,

what I am doing wrongly, I don't know

 

Sub Search_Range_For_Text()
'loop through a range of cells to test if the cells contain some text:

Dim cell As Range

For Each cell In Range("A2:A10022") 'Searching Column
If InStr(1, "FRZ, FREEZER, FREZ, FRE, FREEZ, FR., FREEZETR, FZR, FRS, FEZ, FSD, FS ", cell.Value) > 0 Then
     cell.Offset(0, 2).Value = "Freezer" 'Result Column
End If
Next cell

End Sub

 

Thanks for advance

 
 
Posted : 17/12/2020 12:47 am
(@catalinb)
Posts: 1937
Member Admin
 

Try this code:

Sub Search_Range_For_Text()
'loop through a range of cells to test if the cells contain some text:

Dim cell As Range

For Each cell In Range("A2:A10022") 'Searching Column
If FindMatch(cell.Value) = True Then
cell.Offset(0, 1).Value = "Freezer" 'Result Column
End If
Next cell

End Sub

Function FindMatch(ByVal Text As String) As Boolean
Dim re As Object: Set re = CreateObject("vbscript.regexp")
re.Pattern = "FRZ|FREEZER|FREZ|FRE|FREEZ|FR.|FREEZETR|FZR|FRS|FEZ|FSD|FS "
If re.Execute(Text).Count > 0 Then FindMatch = True
End Function

 
Posted : 17/12/2020 4:41 am
Share: