PC Review


Reply
Thread Tools Rate Thread

combining multiple find/replace subs

 
 
Mark
Guest
Posts: n/a
 
      22nd Apr 2008
Hello

I have about 7 or 8 subs for finding and replacing after a huge amount
of .txt files have been searched for "href." They are meant for
extracting the data that I actually need. The only thing is, is that
the report I created with them in there takes way too long, almost an
hour. Is there a way to combine these or somehow speed up their
processing speed? Here are a couple examples, they are searching
through about 45,000 rows.

Sub DeleteRowsImg()

Dim r As Long
'Dim ans As String
Dim c As Range
Dim lrow As Long

'ans = InputBox("What string do you want rows to be deleted if they
contain it?")
Application.ScreenUpdating = False

lrow = ActiveSheet.UsedRange.Row - 1 + _
ActiveSheet.UsedRange.Rows.Count
For r = lrow To 1 Step -1
With Cells(r, 2)
Set c = .Find("img", LookIn:=xlValues)
If Not c Is Nothing Then
.EntireRow.Delete
End If
End With
Next r
Application.ScreenUpdating = True

End Sub

Sub DeleteRowsAboutus()

Dim r As Long
'Dim ans As String
Dim c As Range
Dim lrow As Long

'ans = InputBox("What string do you want rows to be deleted if they
contain it?")
Application.ScreenUpdating = False

lrow = ActiveSheet.UsedRange.Row - 1 + _
ActiveSheet.UsedRange.Rows.Count
For r = lrow To 1 Step -1
With Cells(r, 2)
Set c = .Find("aboutus", LookIn:=xlValues)
If Not c Is Nothing Then
.EntireRow.Delete
End If
End With
Next r
Application.ScreenUpdating = True

End Sub
 
Reply With Quote
 
 
 
 
Rick Rothstein \(MVP - VB\)
Guest
Posts: n/a
 
      22nd Apr 2008
Maybe you are getting killed by all the recalculations taking place during
the deletes. Try putting...

Application.Calculation = xlCalculationManual

at the start of your code and...

Application.Calculation = xlCalculationAutomatic

at the end of your code and see if that helps any.

Rick



"Mark" <(E-Mail Removed)> wrote in message
news:24764290-2c0c-47f8-bbb2-(E-Mail Removed)...
> Hello
>
> I have about 7 or 8 subs for finding and replacing after a huge amount
> of .txt files have been searched for "href." They are meant for
> extracting the data that I actually need. The only thing is, is that
> the report I created with them in there takes way too long, almost an
> hour. Is there a way to combine these or somehow speed up their
> processing speed? Here are a couple examples, they are searching
> through about 45,000 rows.
>
> Sub DeleteRowsImg()
>
> Dim r As Long
> 'Dim ans As String
> Dim c As Range
> Dim lrow As Long
>
> 'ans = InputBox("What string do you want rows to be deleted if they
> contain it?")
> Application.ScreenUpdating = False
>
> lrow = ActiveSheet.UsedRange.Row - 1 + _
> ActiveSheet.UsedRange.Rows.Count
> For r = lrow To 1 Step -1
> With Cells(r, 2)
> Set c = .Find("img", LookIn:=xlValues)
> If Not c Is Nothing Then
> .EntireRow.Delete
> End If
> End With
> Next r
> Application.ScreenUpdating = True
>
> End Sub
>
> Sub DeleteRowsAboutus()
>
> Dim r As Long
> 'Dim ans As String
> Dim c As Range
> Dim lrow As Long
>
> 'ans = InputBox("What string do you want rows to be deleted if they
> contain it?")
> Application.ScreenUpdating = False
>
> lrow = ActiveSheet.UsedRange.Row - 1 + _
> ActiveSheet.UsedRange.Rows.Count
> For r = lrow To 1 Step -1
> With Cells(r, 2)
> Set c = .Find("aboutus", LookIn:=xlValues)
> If Not c Is Nothing Then
> .EntireRow.Delete
> End If
> End With
> Next r
> Application.ScreenUpdating = True
>
> End Sub


 
Reply With Quote
 
Mark
Guest
Posts: n/a
 
      22nd Apr 2008
On Apr 22, 1:31*pm, "Rick Rothstein \(MVP - VB\)"
<rick.newsNO.S...@NO.SPAMverizon.net> wrote:
> Maybe you are getting killed by all the recalculations taking place during
> the deletes. Try putting...
>
> * * *Application.Calculation = xlCalculationManual
>
> at the start of your code and...
>
> * * *Application.Calculation = xlCalculationAutomatic
>
> at the end of your code and see if that helps any.
>
> Rick
>
> "Mark" <mark.lar...@exeloncorp.com> wrote in message
>
> news:24764290-2c0c-47f8-bbb2-(E-Mail Removed)...
>
>
>
> > Hello

>
> > I have about 7 or 8 subs for finding and replacing after a huge amount
> > of .txt files have been searched for "href." *They are meant for
> > extracting the data that I actually need. *The only thing is, is that
> > the report I created with them in there takes way too long, almost an
> > hour. *Is there a way to combine these or somehow speed up their
> > processing speed? *Here are a couple examples, they are searching
> > through about 45,000 rows.

>
> > Sub DeleteRowsImg()

>
> > Dim r As Long
> > 'Dim ans As String
> > Dim c As Range
> > Dim lrow As Long

>
> > 'ans = InputBox("What string do you want rows to be deleted if they
> > contain it?")
> > Application.ScreenUpdating = False

>
> > lrow = ActiveSheet.UsedRange.Row - 1 + _
> > * * * ActiveSheet.UsedRange.Rows.Count
> > * *For r = lrow To 1 Step -1
> > * * *With Cells(r, 2)
> > * * * * Set c = .Find("img", LookIn:=xlValues)
> > * * * * * *If Not c Is Nothing Then
> > * * * * * * *.EntireRow.Delete
> > * * * * * *End If
> > * * *End With
> > * *Next r
> > Application.ScreenUpdating = True

>
> > End Sub

>
> > Sub DeleteRowsAboutus()

>
> > Dim r As Long
> > 'Dim ans As String
> > Dim c As Range
> > Dim lrow As Long

>
> > 'ans = InputBox("What string do you want rows to be deleted if they
> > contain it?")
> > Application.ScreenUpdating = False

>
> > lrow = ActiveSheet.UsedRange.Row - 1 + _
> > * * * ActiveSheet.UsedRange.Rows.Count
> > * *For r = lrow To 1 Step -1
> > * * *With Cells(r, 2)
> > * * * * Set c = .Find("aboutus", LookIn:=xlValues)
> > * * * * * *If Not c Is Nothing Then
> > * * * * * * *.EntireRow.Delete
> > * * * * * *End If
> > * * *End With
> > * *Next r
> > Application.ScreenUpdating = True

>
> > End Sub- Hide quoted text -

>
> - Show quoted text -


Thanks Richard, but that doesn't seem to really speed the process up
at all. It is still taking quite a while. Any other suggestions?

Thanks!
Mark
 
Reply With Quote
 
Ron Rosenfeld
Guest
Posts: n/a
 
      22nd Apr 2008
On Tue, 22 Apr 2008 11:14:48 -0700 (PDT), Mark <(E-Mail Removed)>
wrote:

>I have about 7 or 8 subs for finding and replacing after a huge amount
>of .txt files have been searched for "href." They are meant for
>extracting the data that I actually need. The only thing is, is that
>the report I created with them in there takes way too long, almost an
>hour. Is there a way to combine these or somehow speed up their
>processing speed? Here are a couple examples, they are searching
>through about 45,000 rows.


If I understand what you're doing, perhaps a different method using built-in
VBA functions:


=============================
For r = lrow To 1 Step -1
With Cells(r, 2)
If InStr(1, .Value, "img") > 0 Then .EntireRow.Delete
End With
Next r
========================
--ron
 
Reply With Quote
 
acbservices@gmail.com
Guest
Posts: n/a
 
      22nd Apr 2008

You can speed up the program by doing the deletes all at once instead
of row by row. Here is how I would do it. This can be done using
instr, autofilter, copy/paste, and deleting columns. This ran for me
in 5 seconds on 45,000 rows. This code assumes that all of your txt
data is in column A. Hope I understood correctly what you are looking
for. Best of luck, PB

Public Sub FindDelete()

Dim x As Long
Dim strCheck As String

Application.ScreenUpdating = False

'Autofilter Header
Rows("1").Insert
Cells(1, 1) = "Autofilter"

'Check
strCheck = "href" 'change for your needs

For x = 2 To fLastRow
If InStr(1, Cells(x, 1), strCheck, 1) = 0 Then
Cells(x, 2) = "X" 'Mark cells
End If
Next x

'Autofilter
Columns("A:B").AutoFilter Field:=2, Criteria1:="=" 'Filter
unmarked cells
Columns("A:A").Copy
Columns("C:C").Select
Selection.PasteSpecial Paste:=xlPasteValues,
Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Columns("A:B").Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlToLeft

'Delete Autofilter Header
Rows("1").Delete

Application.ScreenUpdating = True

Cells(1, 1).Select

End Sub

Public Function fLastRow() As Double
'from http://www.ozgrid.com/VBA/ExcelRanges.htm

fLastRow = 0

If WorksheetFunction.CountA(Cells) > 0 Then
'Search for any entry, by searching backwards by Rows.
fLastRow = Cells.Find(What:="*", After:=[A1], _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
End If

End Function
 
Reply With Quote
 
Rick Rothstein \(MVP - VB\)
Guest
Posts: n/a
 
      22nd Apr 2008
Below my signature is a subroutine which proved to be quite speedy from a
past posting of mine, modified for what I think your conditions are. Give it
a try and let me know how it works out for you. The only things you need to
attend to are at the beginning of the code. There is a section with the
comment "Set your search conditions here" where you can set the worksheet,
first row of data to search, and the search column. Also, you need to add
all the words you are searching for, set up in a comma delimited string
(with NO "extra" spaces to pretty things up) in the Split function's first
argument in the section with the comment "Put your search strings in the
comma delimited string". That's it... Run the code and it should delete all
the appropriate rows and, hopefully, it will do it somewhat quicker than the
method you are now using.

Rick

***************** START OF CODE *****************
Sub ConditionalDelete()
Dim X As Long
Dim Z As Long
Dim LastRow As Long
Dim FoundRowToDelete As Boolean
Dim OriginalCalculationMode As Long
Dim RowsToDelete As Range
Dim SearchItems() As String

Dim DataStartRow As Long
Dim SearchColumn As String
Dim SheetName As String

' Set your search conditions here
DataStartRow = 1
SearchColumn = "B"
SheetName = "Sheet1"

' Put your search strings in the comma delimited string
SearchItems = Split("img,aboutus,othertext,etc", ",")

On Error GoTo Whoops
OriginalCalculationMode = Application.Calculation
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False

With Worksheets(SheetName)
LastRow = .Cells(.Rows.Count, SearchColumn).End(xlUp).Row
For X = LastRow To DataStartRow Step -1
FoundRowToDelete = False
For Z = 0 To UBound(SearchItems)
If InStr(.Cells(X, SearchColumn).Value, SearchItems(Z)) Then
FoundRowToDelete = True
Exit For
End If
Next
If FoundRowToDelete Then
If RowsToDelete Is Nothing Then
Set RowsToDelete = .Cells(X, SearchColumn)
Else
Set RowsToDelete = Union(RowsToDelete, .Cells(X, SearchColumn))
End If
If RowsToDelete.Areas.Count > 100 Then
RowsToDelete.EntireRow.Delete
Set RowsToDelete = Nothing
End If
End If
Next
End With
If Not RowsToDelete Is Nothing Then
RowsToDelete.EntireRow.Delete
End If

Whoops:
Application.Calculation = OriginalCalculationMode
Application.ScreenUpdating = True
End Sub
***************** END OF CODE *****************



"Mark" <(E-Mail Removed)> wrote in message
news:476aa8df-b43d-4e09-802f-(E-Mail Removed)...
On Apr 22, 1:31 pm, "Rick Rothstein \(MVP - VB\)"
<rick.newsNO.S...@NO.SPAMverizon.net> wrote:
> Maybe you are getting killed by all the recalculations taking place during
> the deletes. Try putting...
>
> Application.Calculation = xlCalculationManual
>
> at the start of your code and...
>
> Application.Calculation = xlCalculationAutomatic
>
> at the end of your code and see if that helps any.
>
> Rick
>
> "Mark" <mark.lar...@exeloncorp.com> wrote in message
>
> news:24764290-2c0c-47f8-bbb2-(E-Mail Removed)...
>
>
>
> > Hello

>
> > I have about 7 or 8 subs for finding and replacing after a huge amount
> > of .txt files have been searched for "href." They are meant for
> > extracting the data that I actually need. The only thing is, is that
> > the report I created with them in there takes way too long, almost an
> > hour. Is there a way to combine these or somehow speed up their
> > processing speed? Here are a couple examples, they are searching
> > through about 45,000 rows.

>
> > Sub DeleteRowsImg()

>
> > Dim r As Long
> > 'Dim ans As String
> > Dim c As Range
> > Dim lrow As Long

>
> > 'ans = InputBox("What string do you want rows to be deleted if they
> > contain it?")
> > Application.ScreenUpdating = False

>
> > lrow = ActiveSheet.UsedRange.Row - 1 + _
> > ActiveSheet.UsedRange.Rows.Count
> > For r = lrow To 1 Step -1
> > With Cells(r, 2)
> > Set c = .Find("img", LookIn:=xlValues)
> > If Not c Is Nothing Then
> > .EntireRow.Delete
> > End If
> > End With
> > Next r
> > Application.ScreenUpdating = True

>
> > End Sub

>
> > Sub DeleteRowsAboutus()

>
> > Dim r As Long
> > 'Dim ans As String
> > Dim c As Range
> > Dim lrow As Long

>
> > 'ans = InputBox("What string do you want rows to be deleted if they
> > contain it?")
> > Application.ScreenUpdating = False

>
> > lrow = ActiveSheet.UsedRange.Row - 1 + _
> > ActiveSheet.UsedRange.Rows.Count
> > For r = lrow To 1 Step -1
> > With Cells(r, 2)
> > Set c = .Find("aboutus", LookIn:=xlValues)
> > If Not c Is Nothing Then
> > .EntireRow.Delete
> > End If
> > End With
> > Next r
> > Application.ScreenUpdating = True

>
> > End Sub- Hide quoted text -

>
> - Show quoted text -


Thanks Richard, but that doesn't seem to really speed the process up
at all. It is still taking quite a while. Any other suggestions?

Thanks!
Mark

 
Reply With Quote
 
Mark
Guest
Posts: n/a
 
      22nd Apr 2008
On Apr 22, 2:32*pm, "Rick Rothstein \(MVP - VB\)"
<rick.newsNO.S...@NO.SPAMverizon.net> wrote:
> Below my signature is a subroutine which proved to be quite speedy from a
> past posting of mine, modified for what I think your conditions are. Give it
> a try and let me know how it works out for you. The only things you need to
> attend to are at the beginning of the code. There is a section with the
> comment "Set your search conditions here" where you can set the worksheet,
> first row of data to search, and the search column. Also, you need to add
> all the words you are searching for, set up in a comma delimited string
> (with NO "extra" spaces to pretty things up) in the Split function's first
> argument in the section with the comment "Put your search strings in the
> comma delimited string". That's it... Run the code and it should delete all
> the appropriate rows and, hopefully, it will do it somewhat quicker than the
> method you are now using.
>
> Rick
>
> ***************** START OF CODE *****************
> Sub ConditionalDelete()
> * Dim X As Long
> * Dim Z As Long
> * Dim LastRow As Long
> * Dim FoundRowToDelete As Boolean
> * Dim OriginalCalculationMode As Long
> * Dim RowsToDelete As Range
> * Dim SearchItems() As String
>
> * Dim DataStartRow As Long
> * Dim SearchColumn As String
> * Dim SheetName As String
>
> * ' *Set your search conditions here
> * DataStartRow = 1
> * SearchColumn = "B"
> * SheetName = "Sheet1"
>
> * ' *Put your search strings in the comma delimited string
> * SearchItems = Split("img,aboutus,othertext,etc", ",")
>
> * On Error GoTo Whoops
> * OriginalCalculationMode = Application.Calculation
> * Application.Calculation = xlCalculationManual
> * Application.ScreenUpdating = False
>
> * With Worksheets(SheetName)
> * * LastRow = .Cells(.Rows.Count, SearchColumn).End(xlUp).Row
> * * For X = LastRow To DataStartRow Step -1
> * * * FoundRowToDelete = False
> * * * For Z = 0 To UBound(SearchItems)
> * * * * If InStr(.Cells(X, SearchColumn).Value, SearchItems(Z)) Then
> * * * * * FoundRowToDelete = True
> * * * * * Exit For
> * * * * End If
> * * * Next
> * * * If FoundRowToDelete Then
> * * * * If RowsToDelete Is Nothing Then
> * * * * * Set RowsToDelete = .Cells(X, SearchColumn)
> * * * * Else
> * * * * * Set RowsToDelete = Union(RowsToDelete, .Cells(X, SearchColumn))
> * * * * End If
> * * * * If RowsToDelete.Areas.Count > 100 Then
> * * * * * RowsToDelete.EntireRow.Delete
> * * * * * Set RowsToDelete = Nothing
> * * * * End If
> * * * End If
> * * Next
> * End With
> * If Not RowsToDelete Is Nothing Then
> * * RowsToDelete.EntireRow.Delete
> * End If
>
> Whoops:
> * Application.Calculation = OriginalCalculationMode
> * Application.ScreenUpdating = True
> End Sub
> ***************** END OF CODE *****************
>
> "Mark" <mark.lar...@exeloncorp.com> wrote in message
>
> news:476aa8df-b43d-4e09-802f-(E-Mail Removed)...
> On Apr 22, 1:31 pm, "Rick Rothstein \(MVP - VB\)"
>
>
>
>
>
> <rick.newsNO.S...@NO.SPAMverizon.net> wrote:
> > Maybe you are getting killed by all the recalculations taking place during
> > the deletes. Try putting...

>
> > Application.Calculation = xlCalculationManual

>
> > at the start of your code and...

>
> > Application.Calculation = xlCalculationAutomatic

>
> > at the end of your code and see if that helps any.

>
> > Rick

>
> > "Mark" <mark.lar...@exeloncorp.com> wrote in message

>
> >news:24764290-2c0c-47f8-bbb2-(E-Mail Removed)...

>
> > > Hello

>
> > > I have about 7 or 8 subs for finding and replacing after a huge amount
> > > of .txt files have been searched for "href." They are meant for
> > > extracting the data that I actually need. The only thing is, is that
> > > the report I created with them in there takes way too long, almost an
> > > hour. Is there a way to combine these or somehow speed up their
> > > processing speed? Here are a couple examples, they are searching
> > > through about 45,000 rows.

>
> > > Sub DeleteRowsImg()

>
> > > Dim r As Long
> > > 'Dim ans As String
> > > Dim c As Range
> > > Dim lrow As Long

>
> > > 'ans = InputBox("What string do you want rows to be deleted if they
> > > contain it?")
> > > Application.ScreenUpdating = False

>
> > > lrow = ActiveSheet.UsedRange.Row - 1 + _
> > > ActiveSheet.UsedRange.Rows.Count
> > > For r = lrow To 1 Step -1
> > > With Cells(r, 2)
> > > Set c = .Find("img", LookIn:=xlValues)
> > > If Not c Is Nothing Then
> > > .EntireRow.Delete
> > > End If
> > > End With
> > > Next r
> > > Application.ScreenUpdating = True

>
> > > End Sub

>
> > > Sub DeleteRowsAboutus()

>
> > > Dim r As Long
> > > 'Dim ans As String
> > > Dim c As Range
> > > Dim lrow As Long

>
> > > 'ans = InputBox("What string do you want rows to be deleted if they
> > > contain it?")
> > > Application.ScreenUpdating = False

>
> > > lrow = ActiveSheet.UsedRange.Row - 1 + _
> > > ActiveSheet.UsedRange.Rows.Count
> > > For r = lrow To 1 Step -1
> > > With Cells(r, 2)
> > > Set c = .Find("aboutus", LookIn:=xlValues)
> > > If Not c Is Nothing Then
> > > .EntireRow.Delete
> > > End If
> > > End With
> > > Next r
> > > Application.ScreenUpdating = True

>
> > > End Sub- Hide quoted text -

>
> > - Show quoted text -

>
> Thanks Richard, but that doesn't seem to really speed the process up
> at all. *It is still taking quite a while. *Any other suggestions?
>
> Thanks!
> Mark- Hide quoted text -
>
> - Show quoted text -


Actually Rick, it works perfectly fine! I was confused with the With
(SheetName) - I was putting the actual name of the sheet in there
forgetting it was already dimensioned as a variable. Thanks so much!
 
Reply With Quote
 
Rick Rothstein \(MVP - VB\)
Guest
Posts: n/a
 
      22nd Apr 2008
>> Below my signature is a subroutine which proved to be quite
>> speedy from a past posting of mine, modified for what I think
>> your conditions are. Give it a try and let me know how it works
>> out for you.

>
> Actually Rick, it works perfectly fine! I was confused with the
> With (SheetName) - I was putting the actual name of the sheet
> in there forgetting it was already dimensioned as a variable.
> Thanks so much!


You said your original code took nearly an hour... out of curiosity, how
long did the routine I posted take?

Rick

 
Reply With Quote
 
Mark
Guest
Posts: n/a
 
      23rd Apr 2008
On Apr 22, 3:53*pm, "Rick Rothstein \(MVP - VB\)"
<rick.newsNO.S...@NO.SPAMverizon.net> wrote:
> >> Below my signature is a subroutine which proved to be quite
> >> speedy from a past posting of mine, modified for what I think
> >> your conditions are. Give it a try and let me know how it works
> >> out for you.

>
> > Actually Rick, it works perfectly fine! *I was confused with the
> > With (SheetName) - I was putting the actual name of the sheet
> > in there forgetting it was already dimensioned as a variable.
> > Thanks so much!

>
> You said your original code took nearly an hour... out of curiosity, how
> long did the routine I posted take?
>
> Rick


It was originally about exactly an hour, and now its about 15
minutes. That's a pretty substantial amount of processing time!

Hey would you mind looking at something else for me? I have code that
finds all .txt files within a folder and its subfolders. It finds
these .txt files, then searches through them for any reference of
"href" (the .txt files are web site source code). When it finds an
"href" is copies the entire line and puts into Excel. I don't need
all the stuff in the actual line so I have code to take what I need.
Essentially I am searching for all 3rd party sites. I am able to get
the URL of the page the 3rd party link is on in column A, and the URL
of the 3rd party link into column B. I am trying to get 2 more
things, the Title of the page, and the name of the 3rd party link on
the page. When I run the code, I get no errors but the columns don't
populate. Here is the code that I have, any suggestions would be
great! Thanks!

Mark

Sub CheckTextFilesForHREFs()

MsgBox "Press OK to begin report"
Dim WholeLine As String
Dim myPath As String
Dim workfile As String
Dim myR As Long

myPath = "C:\Exelon\"
workfile = Dir(myPath & "*.html")
'sLine = WholeLine

Set fs = Application.FileSearch
With fs
.LookIn = "C:\Exelon"
.Filename = ".html"
.SearchSubFolders = True
'.FileType = mosFileTypeAllFiles
If .Execute(SortBy:=msoSortByFileName, _
SortOrder:=msoSortOrderAscending) > 0 Then
MsgBox "There were " & .FoundFiles.Count & _
" file(s) found."
For i = 1 To .FoundFiles.Count
ParseURL .FoundFiles(i)
ParseTitle .FoundFiles(i) 'these are the ones it won't
populate
ParseLink .FoundFiles(i) 'these are the ones it won't
populate
Next i

Else
MsgBox "There were no files found."
End If
End With

Sub ParseURL(strFile As String) 'THIS ONE WORKS FINE
Dim strTxt As String, lngTxt As Long, i As Long, oMatches
Dim ws As Worksheet, j As Long, k As Long, m As Long, oMatches2
Dim reg, oMatches3, reg2
i = FreeFile
'strFile = "c:\Users\Richard\Documents\Htmltest.html"
lngTxt = FileLen(strFile)
strTxt = Space(lngTxt)
Open strFile For Binary Access Read As #i
Get #i, , strTxt
Close #i
Debug.Print strTxt
With CreateObject("vbscript.regexp")
.Global = True
.ignorecase = True
.Pattern = vbCrLf & ".*?href.*?(?=" & vbCrLf & ")"
If .test(strTxt) Then
Set oMatches = .Execute(strTxt)
For i = 0 To oMatches.Count - 1
Set reg = CreateObject("vbscript.regexp")
With reg
.Global = True
.ignorecase = True
.Pattern = "href=\""(.*?)\"""
k = Cells(Rows.Count, 1).End(xlUp).Offset(1).Row
Cells(k, 1).Value = strFile
If .test(oMatches(i)) Then
Set oMatches2 = .Execute(oMatches(i))
For j = 0 To oMatches2.Count - 1
Cells(k, j + 2) = .Replace(oMatches2(j),
"$1")
Next j
End If
End With
Next i
End If
End With
End Sub

Sub ParseLink(strFile As String)
Dim strTxt As String, lngTxt As Long, i As Long, oMatches
Dim ws As Worksheet, j As Long, k As Long, m As Long, oMatches2
Dim reg, oMatches3, reg2
i = FreeFile
'strFile = "c:\Users\Richard\Documents\Htmltest.html"
lngTxt = FileLen(strFile)
strTxt = Space(lngTxt)
Open strFile For Binary Access Read As #i
Get #i, , strTxt
Close #i
Debug.Print strTxt
With CreateObject("vbscript.regexp")
.Global = True
.ignorecase = True
.Pattern = vbCrLf & ".*?href.*?(?=" & vbCrLf & ")"
If .test(strTxt) Then
Set oMatches = .Execute(strTxt)
For i = 0 To oMatches.Count - 1
Set reg = CreateObject("vbscript.regexp")
With reg
.Global = True
.ignorecase = True
.Pattern = "<A \""(.*?)\""</A>"
<------------------------------not sure if syntax is right here
k = Cells(Rows.Count, 1).End(xlUp).Offset(1).Row
Cells(k, 1).Value = strFile
If .test(oMatches(i)) Then
Set oMatches2 = .Execute(oMatches(i))
For j = 0 To oMatches2.Count - 1
Cells(k, j + 4) = .Replace(oMatches2(j),
"$1")
Next j
End If
End With
Next i
End If
End With
End Sub
 
Reply With Quote
 
 
 
Reply

Thread Tools
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

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


Similar Threads
Thread Thread Starter Forum Replies Last Post
Combining two different subs w/ similar variables Matthew Dyer Microsoft Excel Programming 10 23rd Sep 2009 07:59 PM
Find multiple characters in one find using MSword find/replace =?Utf-8?B?Q2xpZmY=?= Microsoft Word Document Management 2 29th Oct 2006 07:48 PM
Combining two Subs Petitboeuf Microsoft Excel Misc 6 27th Apr 2006 03:42 PM
Combining find with clearcontents on multiple columns RussB Microsoft Excel Programming 1 13th Jan 2006 11:20 PM
Re: Multiple Find &amp; Replace Dave O Microsoft Excel Misc 1 24th Aug 2004 10:59 PM


Features
 

Advertising
 

Newsgroups
 


All times are GMT +1. The time now is 09:37 PM.