【发布时间】:2014-09-02 17:01:59
【问题描述】:
我在通过 VBA 复制 Excel 范围并将其粘贴为 Word 中的表格时遇到问题。当我使用以下内容复制 Excel 表并粘贴到 Word 时,我的超链接不会复制过来(ExcelDataRange 是 Excel.Range 和 WordText = MyWordDoc.Selection)。
ExcelDataRange.Copy
WordText.Range.PasteExcelTable LinkedToExcel:=False, WordFormatting:=False, RTF:=True
所以我的解决方法是通过这样的循环一次插入一个超链接 (Set WordTable = MyWordDoc.Tables(NewlyAddedTable)):
For J = 1 To WordTable.Columns.Count
If LenB(ExcelDataRange.Cells(4, J).Value2) > 0 Then
MyWordDoc.Hyperlinks.Add WordTable.Cell(4, J).Range, _
ExcelDataRange.Cells(4, J).Hyperlinks(1).Address, ExcelDataRange.Cells(4, J).Hyperlinks(1).SubAddress
End If
Next J
这种方法的问题是 .SubAddress 没有完全从 Excel 复制过来。我的链接包含:“\\NetworkName\ItemOfInterest”,但复制结果为“\NetworkNameItemOfInterest”。第一个反斜杠和中间反斜杠丢失了。
如果我手动将表格从 Excel 复制并粘贴到 Word,则超链接存在且正确。
编辑:我正在使用 RTF:=True 使表格具有与 Excel 一样的确切格式,但这不是超链接的内容。我使用这个参数是因为当设置为 false 时行高不可调整。
【问题讨论】:
-
您使用的是什么版本的 Word?此外,当您声明您的超链接最初没有复制时(在建立循环之前),您的意思是什么都没有被复制,或者链接文本复制为没有操作链接的纯文本?后者是我在将链接转换为字段编码的超链接之前在 Word 2010 中得到的,这允许它在 Word 中工作。
-
我使用的是 Word 2010。带有 RTF:=True 的复制粘贴复制文本和格式,但没有复制链接。所以我将它设置为 false 并且只需要做更多的操作。我可以关闭这个问题,但我不知道该怎么做。你呢?
-
写下您为解决问题所做的工作作为答案。发布答案后,您的答案旁边将显示复选标记的轮廓。单击复选标记,使其变为绿色。这会将您的答案标记为正确的。