如何防止在使用VBA编辑链接时更改链接格式?
我目前正在使用以下代码更新应用程序中的所有链接:如何防止在使用VBA编辑链接时更改链接格式?,vba,ms-publisher,Vba,Ms Publisher,我目前正在使用以下代码更新应用程序中的所有链接: Sub AddSources() Dim pubPage As Page Dim pubShape As Shape Dim hprlink As Hyperlink Dim origAddress() As String Dim exportFileName As String exportFileName = "TestResume" Dim linkSource As String
Sub AddSources()
Dim pubPage As Page
Dim pubShape As Shape
Dim hprlink As Hyperlink
Dim origAddress() As String
Dim exportFileName As String
exportFileName = "TestResume"
Dim linkSource As String
linkSource = "TestSource2"
For Each pubPage In ActiveDocument.Pages
For Each pubShape In pubPage.Shapes
If pubShape.Type = pbTextFrame Then
For Each hprlink In pubShape.TextFrame.TextRange.Hyperlinks
If InStr(hprlink.Address, "http://bleaney.ca") > 0 Then
origAddress = Split(hprlink.Address, "?source=")
hprlink.Address = origAddress(0) + "?source=" + linkSource
End If
Next hprlink
End If
Next pubShape
Next pubPage
ThisDocument.ExportAsFixedFormat pbFixedFormatTypePDF, "C:\" + exportFileName + ".pdf"
End Sub
问题是,当我更新链接时,它们会丢失格式。如何保留超链接的格式?我尝试查看这些方法,但似乎我真正需要的是,它不存在于超链接对象的Range属性中。尝试添加以下行以捕获颜色和下划线,然后在地址更改后将其设置回原位
Sub AddSources()
Dim pubPage As Page
Dim pubShape As Shape
Dim hprlink As Hyperlink
Dim origAddress() As String
Dim exportFileName As String
Dim undline AS Long
Dim clr AS Long
exportFileName = "TestResume"
Dim linkSource As String
linkSource = "TestSource2"
For Each pubPage In ActiveDocument.Pages
For Each pubShape In pubPage.Shapes
If pubShape.Type = pbTextFrame Then
For Each hprlink In pubShape.TextFrame.TextRange.Hyperlinks
If InStr(hprlink.Address, "http://bleaney.ca") > 0 Then
undline = hprlink.Range.Font.Underline
clr = hprlink.Range.Font.Color
origAddress = Split(hprlink.Address, "?source=")
hprlink.Address = origAddress(0) + "?source=" + linkSource
hprlink.Range.Font.Color = clr
hprlink.Range.Font.Underline = undline
End If
Next hprlink
End If
Next pubShape
Next pubPage
ThisDocument.ExportAsFixedFormat pbFixedFormatTypePDF, "C:\" + exportFileName + ".pdf"
End Sub
你想保留什么属性?特别是颜色和缺少下划线,但我想将其推广到所有格式,如果可能的话。幸运的是,我在文档中有不同颜色的超链接,那么这会不会把它们都改成同样的颜色呢?好吧,你说的是推广到所有格式,所以我认为这意味着推广所有的超链接我更新了我的答案谢谢,成功了!我之前也尝试过类似的方法,但由于某种原因,我无法让它发挥作用。