我们有一个第三方工具,可以创建 Excel 文件(xls,97/2003 格式)并将一些单元格格式化为不同的颜色。当我将一系列单元格复制到新创建的文件(xlsx,2007/2010 格式)中时,这些格式化单元格的颜色会完全改变 - 浅黄色变成深紫色等。当我将整个工作表移动/复制到新工作簿中时,也会发生同样的情况。
创建第三方工具的公司已无法联系到(可能已停业),因此我只能修复 Excel 中的此行为。
为什么会发生这种情况?我该怎么做才能防止或解决它?
答案1
右键单击 - 选择性粘贴 - 全部使用源主题
这应该可以保持源主题的完整性。如果这不起作用,您可以发布源文档的示例吗?
答案2
很抱歉重新打开此帖子。我对此进行了一些故障排除,我的发现如下。
假设我们使用“选择性粘贴 - 全部使用源主题”选项,则只会保留原始工作表中的数据和格式,不会复制浮动对象。仅当工作表中没有浮动对象(图表、图解、形状)时,此选项才有效。VBA:
Cells.Copy
Workbooks.Add
Selection.PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone _
, SkipBlanks:=False, Transpose:=False
要获取与工作表相关的所有内容(包括浮动对象),必须将工作表移动/复制到新/目标工作簿。执行此操作后,所有颜色都会更改为不同的主题,包括图表的颜色。即使两个工作簿的调色板相同,情况也是如此。
我已附加一个文件供您使用。尝试将工作表复制/移动到新工作簿并查看会发生什么,此文件源自 Office 2010 平台。我在 Win8 上使用 Office 365,这些标准颜色会变为不同深浅的黄色和灰色。
当您使用在 Office 365 中从头创建的工作簿时,不会出现此问题,但对于使用以前版本的 Office 创建的文件,使用更高版本的 Office 时该问题仍未解决。
解决方案:页面布局--->颜色--->Office 2007-2010
在 VBA 中:
ActiveWorkbook.Theme.ThemeColorScheme.Load ( _
"C:\Program Files\Microsoft Office 15\Root\Document Themes 15\Theme Colors\Office 2007 - 2010.xml" _
)
答案3
我使用 Excel 2010,在复制粘贴两个不同文件的工作表时遇到了同样的问题。
我找到了以下解决方案:
- 打开粘贴了复制单元格的新文件
- 右键单击左上角的 Microsoft 图标
- 点击第一行“自定义快速访问...”(或者在英文版本中它被称为“选项”)
- 转到“保存”选项标题并单击它
- 在窗口的末尾单击“颜色”栏(在部分表视觉选项下)
- 带有调色板的新窗口
答案4
Excel 2013(可能更早)。页面布局 -> 主题 -> 颜色。如果您的原始工作表使用一个颜色模板构建,而新工作表使用不同的颜色模板构建,则传输时颜色会发生变化。打开新工作表并将光标放在颜色模板上,直到找到匹配的颜色。