【发布时间】:2015-03-16 19:14:51
【问题描述】:
我有一个 Excel 2010 工作簿,其中包含我们报告中使用的各种图表。我编写了 VBA 代码来将选定的工作表复制到一个新的工作簿中:
XLMaster.Sheets(x).Copy after:=XLClinic.Sheets(XLClinic.Sheets.Count)
但是,当我这样做时,图表中的颜色会发生变化。
如果我通过打开 XLMaster、右键单击工作表名称并选择移动/复制来“手动”复制工作表,它们也会发生变化。
复制到 XLClinic 时如何保持 XLMaster 中设置的颜色?
【问题讨论】:
-
颜色是如何定义的?我怀疑
XLMaster中的调色板与XLClinic中的不同。 -
我很确定 XLMaster 中的颜色不是从调色板中选择的,而是根据进行格式化的人的个人喜好选择的。我可以从这些颜色选择中创建一个调色板并将其复制到 XLClinic 吗?
-
是的。示例:假设图表上的一条线是红色的。在包含
XLClinic的工作簿中,您可以使用Workbooks("yourbook.xls").Colors(0) = vbRed将调色板索引0设置为红色。然后在您的代码中将该行的颜色索引设置为 0。这将保持工作簿之间的颜色一致性 -
这是否意味着如果我想要红色,我需要手动编辑每个图表以使用调色板 (0),然后手动(通过 VBA)将这些调色板设置复制到新工作簿?
-
我要做的是遍历图表中的颜色,获取颜色索引和相应的颜色(例如
RGB,vbConstant),然后使用它来更新目标调色板。这样就不需要手动操作了。
标签: vba excel excel-2010