更改所有工作表中的超链接地址(使用Mac 2011)

我有一个工作Excel VBA代码,在每个工作表中replace超链接文本。 检查下面的代码

' Only change Hyperlinks in the active sheet Sub FixHyperlinks() Dim wks As Worksheet Dim hl As Hyperlink Dim sOld As String Dim sNew As String Set wks = ActiveSheet sOld = "%5C" sNew = "/" For Each hl In wks.Hyperlinks hl.Address = Replace(hl.Address, sOld, sNew) Next hl End Sub 

问题是,工作簿有大约30张!

我如何使这个macros在活动工作簿中的所有工作表中运行?

在每个循环中使用一个循环来遍历ThisWorkbook.Worksheets中的所有工作表:

 Dim ws As Worksheet For Each ws In ThisWorkbook.Worksheets 'do something Next ws 

所以在你的情况下:

 For Each ws In ThisWorkbook.Worksheets For Each hl In ws.Hyperlinks hl.Address = Replace(hl.Address, sOld, sNew) Next hl Next ws 

您唯一需要添加的是循环所有表格的工作簿,请参阅下面的修改后的代码:

 Sub FixHyperlinks() Dim wb As Workbook Dim wks As Worksheet Dim hl As Hyperlink Dim sOld As String Dim sNew As String Set wb = ThisWorkbook ' loop ThisWorkbook all Sheets For Each wks In wb.Worksheets sOld = "%5C" sNew = "/" For Each hl In wks.Hyperlinks hl.Address = Replace(hl.Address, sOld, sNew) Next hl Next wks End Sub