Excel 宏循环工作簿中的所有工作表
我的任务是将1000个文件中的超链接替换到新服务器。我已经有了替换超链接的工作脚本,但它只在活动页面上工作。告诉我如何使它贯穿书中的所有页面Excel 宏循环工作簿中的所有工作表,excel,vba,Excel,Vba,我的任务是将1000个文件中的超链接替换到新服务器。我已经有了替换超链接的工作脚本,但它只在活动页面上工作。告诉我如何使它贯穿书中的所有页面 Sub changeLinks() Const oldPrefix = "\\oldServer\common" Const newPrefix = "\\NewServer\common" Dim h As Hyperlink, oldLink As String, newLink As String For Each h In ActiveShee
Sub changeLinks()
Const oldPrefix = "\\oldServer\common"
Const newPrefix = "\\NewServer\common"
Dim h As Hyperlink, oldLink As String, newLink As String
For Each h In ActiveSheet.Hyperlinks
'this will change Address but not TextToDisplay
oldLink = h.Address
Debug.Print "Found link: " & oldLink
If Left(oldLink, Len(oldPrefix)) = oldPrefix Then
newLink = newPrefix & Right(h.Address, Len(h.Address) - Len(oldPrefix))
h.Address = newLink
Debug.Print " Changed to " & h.Address
End If
Next h
End Sub
在循环中调用例程:
对您的日常工作进行以下更改:
Sub changeLinks(s As String)
Const oldPrefix = "\\oldServer\common"
Const newPrefix = "\\NewServer\common"
Dim h As Hyperlink, oldLink As String, newLink As String
For Each h In Sheets(s).Hyperlinks
'this will change Address but not TextToDisplay
oldLink = h.Address
Debug.Print "Found link: " & oldLink
If Left(oldLink, Len(oldPrefix)) = oldPrefix Then
newLink = newPrefix & Right(h.Address, Len(h.Address) - Len(oldPrefix))
h.Address = newLink
Debug.Print " Changed to " & h.Address
End If
Next h
End Sub
围绕超链接循环抛出一个循环,以在每个工作表中迭代
Sub changeLinks()
Dim objSheet As Worksheet
Const oldPrefix = "\\oldServer\common"
Const newPrefix = "\\NewServer\common"
Dim h As Hyperlink, oldLink As String, newLink As String
For Each objSheet In ThisWorkbook.Sheets
For Each h In objSheet.Hyperlinks
'this will change Address but not TextToDisplay
oldLink = h.Address
Debug.Print "Found link: " & oldLink
If Left(oldLink, Len(oldPrefix)) = oldPrefix Then
newLink = newPrefix & Right(h.Address, Len(h.Address) - Len(oldPrefix))
h.Address = newLink
Debug.Print " Changed to " & h.Address
End If
Next h
Next
End Sub
Sub changeLinks()
Dim objSheet As Worksheet
Const oldPrefix = "\\oldServer\common"
Const newPrefix = "\\NewServer\common"
Dim h As Hyperlink, oldLink As String, newLink As String
For Each objSheet In ThisWorkbook.Sheets
For Each h In objSheet.Hyperlinks
'this will change Address but not TextToDisplay
oldLink = h.Address
Debug.Print "Found link: " & oldLink
If Left(oldLink, Len(oldPrefix)) = oldPrefix Then
newLink = newPrefix & Right(h.Address, Len(h.Address) - Len(oldPrefix))
h.Address = newLink
Debug.Print " Changed to " & h.Address
End If
Next h
Next
End Sub