以编程方式将超链接添加到字符串
Programmatically Add Hyperlink to String
我正在尝试使用 Word Interop 在 VB.NET 中自动创建电子邮件签名。
除了尝试以编程方式添加超链接(例如)电子邮件地址之外,一切都很好 - 将电子邮件写入并期待另一端邮件 client/browser 转换它,一切都很好,但是我想自己指定链接(例如社交链接、我们的隐私政策等)
以下是我正在使用的代码的相关部分:
Imports Word = Microsoft.Office.Interop.Word
Dim objWord As Word.Application = CreateObject("Word.Application")
objWord.Visible = False
Dim objDoc = objWord.Documents.Add()
Dim objSelection = objWord.Selection
Dim objEmailOptions = objWord.EmailOptions
Dim objSignatureObject = objEmailOptions.EmailSignature
Dim objSignatureEntries = objSignatureObject.EmailSignatureEntries
Try
If Len(strEmail) > 0 Then
objSelection.TypeText(strEmail)
End If
Catch ex As Exception
Debug.Print(ex.Message)
End Try
使用示例 here,我相信我应该使用以下内容代替 objSelection.TypeText(strEmail)
是...
If Len(strEmail) > 0 Then
Dim objEmailRange = objSelection.Range.Start()
objSelection.Hyperlinks.Add(objEmailRange, strEmail, , , strEmail)
End If
...但是这会引发 COM 异常。
A first chance exception of type 'System.Runtime.InteropServices.COMException' occurred in Signature_v2.exe
Command failed
我是否正确定义了范围开始(基于 this)?我做错了什么?
超链接不是实际文本;它只是对已经存在的文本的装饰。您必须将范围、选择或文档传递给 Hyperlinks.Add()
的第一个参数 ("Anchor")。
示例:
ActiveDocument.Hyperlinks.Add Anchor:=Selection.Range, Address:="http:\www.microsoft.com"
我正在尝试使用 Word Interop 在 VB.NET 中自动创建电子邮件签名。
除了尝试以编程方式添加超链接(例如)电子邮件地址之外,一切都很好 - 将电子邮件写入并期待另一端邮件 client/browser 转换它,一切都很好,但是我想自己指定链接(例如社交链接、我们的隐私政策等)
以下是我正在使用的代码的相关部分:
Imports Word = Microsoft.Office.Interop.Word
Dim objWord As Word.Application = CreateObject("Word.Application")
objWord.Visible = False
Dim objDoc = objWord.Documents.Add()
Dim objSelection = objWord.Selection
Dim objEmailOptions = objWord.EmailOptions
Dim objSignatureObject = objEmailOptions.EmailSignature
Dim objSignatureEntries = objSignatureObject.EmailSignatureEntries
Try
If Len(strEmail) > 0 Then
objSelection.TypeText(strEmail)
End If
Catch ex As Exception
Debug.Print(ex.Message)
End Try
使用示例 here,我相信我应该使用以下内容代替 objSelection.TypeText(strEmail)
是...
If Len(strEmail) > 0 Then
Dim objEmailRange = objSelection.Range.Start()
objSelection.Hyperlinks.Add(objEmailRange, strEmail, , , strEmail)
End If
...但是这会引发 COM 异常。
A first chance exception of type 'System.Runtime.InteropServices.COMException' occurred in Signature_v2.exe
Command failed
我是否正确定义了范围开始(基于 this)?我做错了什么?
超链接不是实际文本;它只是对已经存在的文本的装饰。您必须将范围、选择或文档传递给 Hyperlinks.Add()
的第一个参数 ("Anchor")。
示例:
ActiveDocument.Hyperlinks.Add Anchor:=Selection.Range, Address:="http:\www.microsoft.com"