复制没有背景色的Excel范围

问题描述

我有一个代码,可以将表格从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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...