Home |
Search |
Today's Posts |
|
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
In an Excel2002 worksheet Col B is populated daily with 50-80 rows of
web page data all B cells with hyperlinks. eg. "http://www.mzmz.com/az/az_detail.php?save=1&id=158890PHPSESSID=andlotsoft rash789" The Col B Cells link location is constant through the "&id=" after which they change for each web page. I need to change the above external hyperlink address to a local address with a web archive file type extension. eg. "file:///C:\Documents and Settings\R\My Documents\T\AUS\2007\Data\158890.mht" I changed the following code (courtesy of David McRitchie's site) but cannot figure out how to handle the changing ID numbers. Dim OldStr As String, NewStr As String Dim hyp As Hyperlink OldStr = "http://www.mzmz.com/az/az_detail.php?save=1&id=" NewStr = "file:///c:\Documents and Settings\R\My Documents\T\AUS\2007\Data\ Sheets("Sheet3").Select For Each hyp In ActiveSheet.Hyperlinks hyp.Address = Replace(hyp.Address, OldStr, NewStr) Next hyp Any help appreciated. TIA Ron |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Maybe just extracting the &id= stuff, then deleting the old link and adding a
new one would work better: Option Explicit Sub testme01() Dim myCell As Range Dim myRng As Range Dim wks As Worksheet Dim myId As String Dim IDPos As String Dim NewURL As String Set wks = Worksheets("sheet1") NewURL _ = "file:///C:\Documents and Settings\R\My Documents\T\AUS\2007\Data\" With wks Set myRng = .Range("b1", .Cells(.Rows.Count, "B").End(xlUp)) End With For Each myCell In myRng.Cells With myCell If .Hyperlinks.Count 0 Then IDPos = InStr(1, .Hyperlinks(1).Address, "&id=", vbTextCompare) If IDPos 0 Then myId = Mid(.Hyperlinks(1).Address, IDPos + 4, 6) .Hyperlinks.Delete .Hyperlinks.Add anchor:=.Cells, _ Address:=NewURL & myId & ".mht" End If End If End With Next myCell End Sub Ron wrote: In an Excel2002 worksheet Col B is populated daily with 50-80 rows of web page data all B cells with hyperlinks. eg. "http://www.mzmz.com/az/az_detail.php?save=1&id=158890PHPSESSID=andlotsoft rash789" The Col B Cells link location is constant through the "&id=" after which they change for each web page. I need to change the above external hyperlink address to a local address with a web archive file type extension. eg. "file:///C:\Documents and Settings\R\My Documents\T\AUS\2007\Data\158890.mht" I changed the following code (courtesy of David McRitchie's site) but cannot figure out how to handle the changing ID numbers. Dim OldStr As String, NewStr As String Dim hyp As Hyperlink OldStr = "http://www.mzmz.com/az/az_detail.php?save=1&id=" NewStr = "file:///c:\Documents and Settings\R\My Documents\T\AUS\2007\Data\ Sheets("Sheet3").Select For Each hyp In ActiveSheet.Hyperlinks hyp.Address = Replace(hyp.Address, OldStr, NewStr) Next hyp Any help appreciated. TIA Ron -- Dave Peterson |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
ps. This line:
myId = Mid(.Hyperlinks(1).Address, IDPos + 4, 6) takes 6 characters. You may want to change this if the id isn't always 6 digits. Dave Peterson wrote: Maybe just extracting the &id= stuff, then deleting the old link and adding a new one would work better: Option Explicit Sub testme01() Dim myCell As Range Dim myRng As Range Dim wks As Worksheet Dim myId As String Dim IDPos As String Dim NewURL As String Set wks = Worksheets("sheet1") NewURL _ = "file:///C:\Documents and Settings\R\My Documents\T\AUS\2007\Data\" With wks Set myRng = .Range("b1", .Cells(.Rows.Count, "B").End(xlUp)) End With For Each myCell In myRng.Cells With myCell If .Hyperlinks.Count 0 Then IDPos = InStr(1, .Hyperlinks(1).Address, "&id=", vbTextCompare) If IDPos 0 Then myId = Mid(.Hyperlinks(1).Address, IDPos + 4, 6) .Hyperlinks.Delete .Hyperlinks.Add anchor:=.Cells, _ Address:=NewURL & myId & ".mht" End If End If End With Next myCell End Sub Ron wrote: In an Excel2002 worksheet Col B is populated daily with 50-80 rows of web page data all B cells with hyperlinks. eg. "http://www.mzmz.com/az/az_detail.php?save=1&id=158890PHPSESSID=andlotsoft rash789" The Col B Cells link location is constant through the "&id=" after which they change for each web page. I need to change the above external hyperlink address to a local address with a web archive file type extension. eg. "file:///C:\Documents and Settings\R\My Documents\T\AUS\2007\Data\158890.mht" I changed the following code (courtesy of David McRitchie's site) but cannot figure out how to handle the changing ID numbers. Dim OldStr As String, NewStr As String Dim hyp As Hyperlink OldStr = "http://www.mzmz.com/az/az_detail.php?save=1&id=" NewStr = "file:///c:\Documents and Settings\R\My Documents\T\AUS\2007\Data\ Sheets("Sheet3").Select For Each hyp In ActiveSheet.Hyperlinks hyp.Address = Replace(hyp.Address, OldStr, NewStr) Next hyp Any help appreciated. TIA Ron -- Dave Peterson -- Dave Peterson |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Dave,
Tested the code and it worked perfectly straight out of the box.... you folks are the GREATEST. Thank you Ron On Mon, 22 Jan 2007 09:51:09 -0600, Dave Peterson wrote: ps. This line: myId = Mid(.Hyperlinks(1).Address, IDPos + 4, 6) takes 6 characters. You may want to change this if the id isn't always 6 digits. Dave Peterson wrote: Maybe just extracting the &id= stuff, then deleting the old link and adding a new one would work better: Option Explicit Sub testme01() Dim myCell As Range Dim myRng As Range Dim wks As Worksheet Dim myId As String Dim IDPos As String Dim NewURL As String Set wks = Worksheets("sheet1") NewURL _ = "file:///C:\Documents and Settings\R\My Documents\T\AUS\2007\Data\" With wks Set myRng = .Range("b1", .Cells(.Rows.Count, "B").End(xlUp)) End With For Each myCell In myRng.Cells With myCell If .Hyperlinks.Count 0 Then IDPos = InStr(1, .Hyperlinks(1).Address, "&id=", vbTextCompare) If IDPos 0 Then myId = Mid(.Hyperlinks(1).Address, IDPos + 4, 6) .Hyperlinks.Delete .Hyperlinks.Add anchor:=.Cells, _ Address:=NewURL & myId & ".mht" End If End If End With Next myCell End Sub Ron wrote: In an Excel2002 worksheet Col B is populated daily with 50-80 rows of web page data all B cells with hyperlinks. eg. "http://www.mzmz.com/az/az_detail.php?save=1&id=158890PHPSESSID=andlotsoft rash789" The Col B Cells link location is constant through the "&id=" after which they change for each web page. I need to change the above external hyperlink address to a local address with a web archive file type extension. eg. "file:///C:\Documents and Settings\R\My Documents\T\AUS\2007\Data\158890.mht" I changed the following code (courtesy of David McRitchie's site) but cannot figure out how to handle the changing ID numbers. Dim OldStr As String, NewStr As String Dim hyp As Hyperlink OldStr = "http://www.mzmz.com/az/az_detail.php?save=1&id=" NewStr = "file:///c:\Documents and Settings\R\My Documents\T\AUS\2007\Data\ Sheets("Sheet3").Select For Each hyp In ActiveSheet.Hyperlinks hyp.Address = Replace(hyp.Address, OldStr, NewStr) Next hyp Any help appreciated. TIA Ron -- Dave Peterson |
#5
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
You may want to consider using the =hyperlink() function in the future.
Since they're just worksheet functions, they can be much easier to work with (edit|Replace can work wonders <bg). Ron wrote: Dave, Tested the code and it worked perfectly straight out of the box.... you folks are the GREATEST. Thank you Ron On Mon, 22 Jan 2007 09:51:09 -0600, Dave Peterson wrote: ps. This line: myId = Mid(.Hyperlinks(1).Address, IDPos + 4, 6) takes 6 characters. You may want to change this if the id isn't always 6 digits. Dave Peterson wrote: Maybe just extracting the &id= stuff, then deleting the old link and adding a new one would work better: Option Explicit Sub testme01() Dim myCell As Range Dim myRng As Range Dim wks As Worksheet Dim myId As String Dim IDPos As String Dim NewURL As String Set wks = Worksheets("sheet1") NewURL _ = "file:///C:\Documents and Settings\R\My Documents\T\AUS\2007\Data\" With wks Set myRng = .Range("b1", .Cells(.Rows.Count, "B").End(xlUp)) End With For Each myCell In myRng.Cells With myCell If .Hyperlinks.Count 0 Then IDPos = InStr(1, .Hyperlinks(1).Address, "&id=", vbTextCompare) If IDPos 0 Then myId = Mid(.Hyperlinks(1).Address, IDPos + 4, 6) .Hyperlinks.Delete .Hyperlinks.Add anchor:=.Cells, _ Address:=NewURL & myId & ".mht" End If End If End With Next myCell End Sub Ron wrote: In an Excel2002 worksheet Col B is populated daily with 50-80 rows of web page data all B cells with hyperlinks. eg. "http://www.mzmz.com/az/az_detail.php?save=1&id=158890PHPSESSID=andlotsoft rash789" The Col B Cells link location is constant through the "&id=" after which they change for each web page. I need to change the above external hyperlink address to a local address with a web archive file type extension. eg. "file:///C:\Documents and Settings\R\My Documents\T\AUS\2007\Data\158890.mht" I changed the following code (courtesy of David McRitchie's site) but cannot figure out how to handle the changing ID numbers. Dim OldStr As String, NewStr As String Dim hyp As Hyperlink OldStr = "http://www.mzmz.com/az/az_detail.php?save=1&id=" NewStr = "file:///c:\Documents and Settings\R\My Documents\T\AUS\2007\Data\ Sheets("Sheet3").Select For Each hyp In ActiveSheet.Hyperlinks hyp.Address = Replace(hyp.Address, OldStr, NewStr) Next hyp Any help appreciated. TIA Ron -- Dave Peterson -- Dave Peterson |
#6
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Dave,
Could you give me a couple lines as an example of what you mean with the Hyperlink()......... edit/REPLACE. TIA Ron On Tue, 23 Jan 2007 09:15:12 -0600, Dave Peterson wrote: You may want to consider using the =hyperlink() function in the future. Since they're just worksheet functions, they can be much easier to work with (edit|Replace can work wonders <bg). Ron wrote: Dave, Tested the code and it worked perfectly straight out of the box.... you folks are the GREATEST. Thank you Ron On Mon, 22 Jan 2007 09:51:09 -0600, Dave Peterson wrote: ps. This line: myId = Mid(.Hyperlinks(1).Address, IDPos + 4, 6) takes 6 characters. You may want to change this if the id isn't always 6 digits. Dave Peterson wrote: Maybe just extracting the &id= stuff, then deleting the old link and adding a new one would work better: Option Explicit Sub testme01() Dim myCell As Range Dim myRng As Range Dim wks As Worksheet Dim myId As String Dim IDPos As String Dim NewURL As String Set wks = Worksheets("sheet1") NewURL _ = "file:///C:\Documents and Settings\R\My Documents\T\AUS\2007\Data\" With wks Set myRng = .Range("b1", .Cells(.Rows.Count, "B").End(xlUp)) End With For Each myCell In myRng.Cells With myCell If .Hyperlinks.Count 0 Then IDPos = InStr(1, .Hyperlinks(1).Address, "&id=", vbTextCompare) If IDPos 0 Then myId = Mid(.Hyperlinks(1).Address, IDPos + 4, 6) .Hyperlinks.Delete .Hyperlinks.Add anchor:=.Cells, _ Address:=NewURL & myId & ".mht" End If End If End With Next myCell End Sub Ron wrote: In an Excel2002 worksheet Col B is populated daily with 50-80 rows of web page data all B cells with hyperlinks. eg. "http://www.mzmz.com/az/az_detail.php?save=1&id=158890PHPSESSID=andlotsoft rash789" The Col B Cells link location is constant through the "&id=" after which they change for each web page. I need to change the above external hyperlink address to a local address with a web archive file type extension. eg. "file:///C:\Documents and Settings\R\My Documents\T\AUS\2007\Data\158890.mht" I changed the following code (courtesy of David McRitchie's site) but cannot figure out how to handle the changing ID numbers. Dim OldStr As String, NewStr As String Dim hyp As Hyperlink OldStr = "http://www.mzmz.com/az/az_detail.php?save=1&id=" NewStr = "file:///c:\Documents and Settings\R\My Documents\T\AUS\2007\Data\ Sheets("Sheet3").Select For Each hyp In ActiveSheet.Hyperlinks hyp.Address = Replace(hyp.Address, OldStr, NewStr) Next hyp Any help appreciated. TIA Ron -- Dave Peterson |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Edit REplace String | Excel Worksheet Functions | |||
How do I replace last numeric string from a alphanumeric string? | Excel Discussion (Misc queries) | |||
replace in a string | Excel Programming | |||
A Macro to replace a string in a cell with a string from another cell??? | Excel Programming | |||
Substring to replace string | Excel Programming |