将Excel范围复制到Word中作为表问题

问题描述:

我遇到问题,复制Excel范围并通过VBA将其粘贴为Word中的表格。当我使用以下来复制Excel表格并粘贴到Word时,我的超链接不会复制(ExcelDataRange是Excel.Range和WordText = MyWordDoc.Selection)。将Excel范围复制到Word中作为表问题

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时不可调整。

+0

您使用的是哪个版本的Word?另外,当你声明你的超级链接最初并没有复制(在开始你的循环之前),你的意思是什么都不会被复制,或者链接文本复制为纯文本而没有操作链接?后者是我在Word 2010中将链接转换为字段代码超链接之前所获得的内容,它允许其在Word中工作。 – joeschwa 2014-09-03 17:29:19

+0

我正在使用Word 2010.复制粘贴与RTF:= True复制文本和格式,但没有复制链接。所以我把这个设置为等于false,只是需要做更多的操作。我可以解决这个问题,但我不知道该怎么做。你做? – JoeB 2014-09-04 17:40:41

+0

撰写您做过的解决问题的答案。发布答案后,复选标记的大纲将显示在答案旁边。点击复选标记,使其变成绿色。这标志着你的答案是正确的。 – joeschwa 2014-09-04 18:00:57

我正在使用RTF:= True参数将Excel范围的格式设置到Word表格中,但这不允许超链接进行复制。所以,我用:

.Range.PasteExcelTable LinkedToExcel:=False, WordFormatting:=True, RTF:=False 

RTF:=False允许超链接正确插入。缺点是我不得不添加额外的代码来格式化Word表格以匹配Excel范围。