Skip to main content

Search a String for Words in VBA

Using VBA, How can I search a string for words surround by ( ) and remove them from the string.

There may be certain cases where I have a string equal to something like: "dog, cat, (pig), sheep, (elephant)". I need help creating a code that will search the string and remove the words surrounded in brackets resulting in: "dog, cat, sheep".

To make this a bit more challenging, in addition to removing words surrounded by ( ) I would like the comma's to adjust as well so I don't end up with: "dog. cat. . sheep, ," This would mean if sheep became the last word in the string it would no longer be followed by a comma.

This is a code suggestion for the same
1.


 Function FilterBetween(Data As String, _  
 Optional Delimiter As String = ",", _  
 Optional OnLeft As String = "(", _  
 Optional OnRight As String = ")") _  
 As String  
 'remove anything in a delimited string which is surrounded by  
 ' a left and right value, e.g. '(' and ')' or 'start' and 'end'  
 Dim Text() As String  
 Dim NewText() As String  
 Dim i As Long  
 Dim Counter As Long  
 On Error Resume Next  
 'break data into an array  
 Text = Split(Data, Delimiter)  
 'check for left and right  
 For i = 0 To UBound(Text)  
 Text(i) = Trim(Text(i))  
 'check for left and right values  
 If Not (Left(Text(i), Len(OnLeft)) = OnLeft _  
 And Right(Text(i), Len(OnRight)) = OnRight) Then  
 Counter = UBound(NewText) + 1  
 ReDim Preserve NewText(Counter)  
 NewText(Counter) = Text(i)  
 End If  
 Next  
2.
 Public Function ReplaceText(str As String) As String  
 Dim Regx As New VBScript_RegExp_55.RegExp  
 Dim Vr As Variant  
 Dim newVr() As String  
 Dim ICounter As Long  
 Dim ArrCounter As Long  
 Dim Tmpstr As String  
 Regx.Pattern = "(\(.*\))"  
 Vr = Split(str, ",")  
 ArrCounter = 1  
 For ICounter = LBound(Vr) To UBound(Vr)  
 If Not Regx.Test(Vr(ICounter)) Then  
 ReDim Preserve newVr(ArrCounter)  
 newVr(ArrCounter - 1) = Vr(ICounter)  
 ArrCounter = ArrCounter + 1  
 End If  
 Next  
 Tmpstr = Join(newVr, ",")  
 Tmpstr = IIf(Right(Tmpstr, 1) = ",", Left(Tmpstr, Len(Tmpstr) - 1),  
 Tmpstr)  
 ReplaceText = Tmpstr  
 End Function  
 FilterBetween = Join(NewText, Delimiter)  
 End Function  

Popular posts from this blog

Resolved : Power BI Report connection error during execution

Getting Below Power BI Report connection error during execution . Error: Something went wrong Unable to connect to the data source undefined. Please try again later or contact support. If you contact support, please provide these details. Underlying error code: -2147467259 Table: Business Sector. Underlying error message: AnalysisServices: A connection cannot be made. Ensure that the server is running. DM_ErrorDetailNameCode_UnderlyingHResult: -2147467259 Microsoft.Data.Mashup.ValueError.DataSourceKind: AnalysisServices Microsoft.Data.Mashup.ValueError.DataSourcePath: 10.10.10.60;T_CustomerMaster_ST Microsoft.Data.Mashup.ValueError.Reason: DataSource.Error Cluster URI: WABI-WEST-EUROPE-redirect.analysis.windows.net Activity ID: c72c4f12-8c27-475f-b576-a539dd81826a Request ID: dfb54166-c78f-4b40-779f-e8922a6687ad Time: 2019-09-26 10:03:29Z Solution: We found report connection not able to connect to SQL Analysis service so tried below option. ...

Song- Khamoshiyan Piano keyboard Chord,Notation and songs Lyrics

Song Aankhen Khuli Ho lyrics notation

Song : Aankhen Khuli Ho Movie: Mohabbatein Notes used : W=>Western - C D E F G- A- B-/ H=>Hindustani - S R G M P- D- N- ( Here for western, G=G-, A=A-, & B=B- ) ( For hindustani, P=P-, D=D-, & N=N- ) Song I : Aankhen Khuli...Ho Ya.. Ho Bandh W=> A.... C... B..C.. E.. E...... A... A.... H=> D... S... N..S.. G G....... D... D.... Deedaar Un Ka Ho.o.taa Hai.. W=> A...B....A....D.BAG....ADB... H=> D...N...D.....R.NDP...DRN... Kaise Kahoon Main O..Yaaraa W=> B..D.. D....E.... D.....C..C..C... H=> N..R.. R....G... R.....S..S..S..... Ye Pyaar Kaise Hota Hai W=> E...B.....DB...AG...B..AA H=> G...N....RN...DP...N...DD (Tururu ru ru, ru ru rururu ru......) W=> AA...GA...BCE..., B...DB..GA H=> DD...PD...NSG..., N..RN.. PD Song II: Aa.aj He Kisi..par Yaa.ro.on..., Marke De..Khe..gein Hum W=> E....FEDCBABC.D.. D D......., G A B C.... E.......D...D..... H=> G....MGRSNDNS.R. R R......., P D N S.....G........R...R.... Pyaar Ho...