问题描述
我有一个代码,可以将表格从Excel复制到Word。
If ThisWorkbook.Worksheets("OtherData").Range("N90").Value = True Then
ThisWorkbook.Sheets("TableForOL").Range("B6:F16").Copy
With wdRng
Set rngPara = .Paragraphs.Last.Range
rngPara.Style = "Data"
rngPara.PasteExcelTable False,False,False
.Tables(.Tables.Count).Range.Paragraphs.Indent
.Font.Hidden = 0
Set rngPara = Nothing
End With
Else
ThisWorkbook.Sheets("TableForOL").Range("B6:F6").Copy
With wdRng
Set rngPara = .Paragraphs.Last.Range
rngPara.Style = "Data"
rngPara.PasteExcelTable False,False
.Tables(.Tables.Count).Range.Paragraphs.Indent
.Font.Hidden = 0
Set rngPara = Nothing
End With
End If
此表在Excel中具有一定的背景,即使在复制粘贴过程之后也可以保留。但是我不想在Word中使用它。目前,我必须使用:
ThisWorkbook.Sheets("TableForOL").Range("B6:F2621").Interior.ColorIndex = 0
这将删除所有背景。
有没有其他方法可以做到这一点,以使背景色可以跟随Word文档,但是在Excel中仍然可以保持不变。
解决方法
请尝试更改
rngPara.PasteExcelTable False,False,False
使用
rngPara.PasteExcelTable False,True,False
,
首先存储现有的背景色:
origBG = ThisWorkbook.Sheets("TableForOL").Range("B6:F2621").Interior.ColorIndex
然后将其空白:
ThisWorkbook.Sheets("TableForOL").Range("B6:F2621").Interior.ColorIndex = 0
在Copy
操作之后,您可以将其还原:
ThisWorkbook.Sheets("TableForOL").Range("B6:F2621").Interior.ColorIndex = origBG