Home |
Search |
Today's Posts |
|
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
I have a regular expression with defined pattern. How do I incorporate
another pattern. That is, I want to evalute both the pattern in the code below AND OR a second pattern: \=[.+\].+\! What is the proper syntax for passing more than one string to the pattern property. I want to say look for X AND OR Y. Public Function CellHasWhatIAmLookingFor(rng As Range) As Variant Dim reg As Object 'On Error GoTo ErrHandler If rng.HasFormula Then Set reg = CreateObject("VBScript.RegExp") With reg .Pattern = "\=.+\[.+\].+\!.+" 'also want \=[.+\].+\! CellHasExternalLinks = .test(rng.Formula) End With Else CellHasExternalLinks = False End If End Function |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]() I'm not too sure about your pattern.. e.g. a ref to book.xls!MyName is not caught.. but no inclination to do a better pattern :( use | for OR normally to define an external ref: it would suffic to search a ! provided is not not within DOUBLE QUOTES. (regex for VBscript is not simple as no lookbehind) for efficiency I DO recommend that RE object and pattern are static Function IsExternal(Reference As Range) As Boolean Static oRE As Object If oRE Is Nothing Then Set oRE = CreateObject("vbscript.regexp") oRE.Pattern = "\[.+\].*\!" End If If Reference.HasFormula Then IsExternal = oRE.Test(Reference.Formula) End If End Function -- keepITcool | www.XLsupport.com | keepITcool chello nl | amsterdam ExcelMonkey wrote : I have a regular expression with defined pattern. How do I incorporate another pattern. That is, I want to evalute both the pattern in the code below AND OR a second pattern: \=[.+\].+\! What is the proper syntax for passing more than one string to the pattern property. I want to say look for X AND OR Y. Public Function CellHasWhatIAmLookingFor(rng As Range) As Variant Dim reg As Object 'On Error GoTo ErrHandler If rng.HasFormula Then Set reg = CreateObject("VBScript.RegExp") With reg .Pattern = "\=.+\[.+\].+\!.+" 'also want \=[.+\].+\! CellHasExternalLinks = .test(rng.Formula) End With Else CellHasExternalLinks = False End If End Function |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
distinct | Excel Worksheet Functions | |||
Distinct | Excel Worksheet Functions | |||
Regexp needed in Excel 2000 | Excel Discussion (Misc queries) | |||
pattern matching w/o using VBScript's RegExp Object | Excel Programming | |||
Distinct Value With Countif | Excel Worksheet Functions |