LinkBack Thread Tools Search this Thread Display Modes
Prev Previous Post   Next Post Next
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 44
Default Batch Replace function for Large strings

String processing in VBA is very slow when strings are large. I have a
function that I've been using for doing batch replace ops (below), but
it chokes on large strings with many replacements to do (like 50),
because it has to do 50 passes of the string to perform the
replacements.

Has anyone written a fast function designed to do the same thing for
large strings but only makes one pass through the data?



Public Function BatchReplace(ByVal InputString As String, FindArray As
Variant, _
ReplaceArray As Variant, Optional MatchCase As Boolean = False) As
String
' Performs a batch of find/replace ops on a single string.
Dim strErrMsg As String
If UBound(FindArray) - LBound(FindArray) < UBound(ReplaceArray) -
LBound(ReplaceArray) Then
GoTo errUnequalArrays
End If

On Error GoTo errBadReplace
Dim i As Integer
For i = LBound(FindArray) To UBound(FindArray)
If MatchCase Then
InputString = Replace(InputString, FindArray(i),
ReplaceArray(i), , , vbBinaryCompare)
Else
InputString = Replace(InputString, FindArray(i),
ReplaceArray(i), , , vbTextCompare)
End If
Next i

BatchReplace = InputString

Exit Function

errUnequalArrays:
strErrMsg = "Error. The number of entries in the FindArray and
ReplaceArray do not match."
Err.Raise Number:=vbObjectError + 1000, source:="BatchReplace",
Description:=strErrMsg
Exit Function

errBadReplace:
strErrMsg = "Error. An unknown error occurred during the
replacement operations."
Err.Raise Number:=vbObjectError + 1001, source:="BatchReplace",
Description:=strErrMsg
Exit Function

End Function

 
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
find and replace numeric strings in larger text strings Mr Molio Excel Worksheet Functions 8 November 9th 11 05:17 PM
run batch job from each row - how to insert run batch function per row? Mitchell_Collen via OfficeKB.com Excel Discussion (Misc queries) 5 February 26th 09 07:16 AM
hash function for large strings jheby Excel Worksheet Functions 22 March 16th 06 07:07 PM
Search and Replace text strings within Macros Chris Austin Excel Programming 1 September 5th 03 04:39 PM


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

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"