我在从超链接中的书签获取文本时遇到问题。我可以从备用文档中获取书签范围的内容(因为它是由书签定义的),还是我必须在文档之间来回切换以复制内容?我可以将整个文件作为完整性检查插入。但是,我需要从补充文件Insertion.docm自动获取多个书签(在超链接中)的内容。 VB帮助表明我可以检索文件的一部分(书签或范围),但是我没有看到在设置它之后如何使用宏来访问带书签的选项。 请注意,我正在尝试从超链接/书签中获取文本,并将其插入超链接的位置。这是我的宏:
Sub MAFExpandHyperlink()
Dim Str
Dim Path As String
Dim HyperRng As Range
Dim Bookmk As Variant 'Using Range kills it
Dim Cntr As Integer
For Each Bookmk In ActiveDocument.Hyperlinks
Path = "\\User\Mark\Macro\"
Str = Path & Hyper.Address
Cntr = Cntr + 1
HyperRng = Bookmk.Range
Hyperlink.Range.InsertFile Bookmk.Address, HyperRng
Next
End Sub
作为背景:
'!!!!调试手表显示Subaddress =“TextInSec1”
'Address =“InsertionMaterial.docm”
'Hyper.Range.Insertfile(Str)'这可以工作(我很接近),但它会插入整个文件!
当我在书签的内容存在后设置监视时,我看到Address =“InsertionMaterial”和Subaddress =“TextInSec1”,这是正确的。
当我在Main中运行宏时,我打开了2个文件,Main.docm(我运行宏)和Insertion.docm,创建了几个书签定义了选定区域Insertion.docm,并在Main中有几个超链接.docm指向Insertion#Material中相应的书签区域。
在寻找答案的过程中,我看到很多人都在做相反的事情。试图将文本添加到书签,但我试图从另一个文件中的书签范围中获取文本以在主链接处插入超链接。
请帮助,或者请指出一个访问第二个Word窗口中书签的示例。
答案 0 :(得分:0)
如果要以编程方式访问两个文档,则不希望使用ActiveDocument。声明文档的变量:
Dim oWordDoc As Word.Document
然后打开您要处理的文档:
Set oWordDoc = Documents.Open(Filename:=strFolder & "\" & strFilename, Format:=wdOpenFormatText)
(以上是我的一些代码中的示例,但您应该能够弄明白。)
然后获取如下的超链接:
For Each Bookmk In oWordDoc.Hyperlinks
另外,摆脱“End With”,因为我没有看到With声明。