所以,我有一个报告,我想确保格式正确,无论用户是否更改格式或excel - 是否有办法“自动映射”当前的格式文档(如果它是逐个单元格映射的,那很好),将它存储在一个宏中,以便我以后可以使用它?
答案 0 :(得分:2)
您需要一份处于未更改状态的报告副本。您可以在同一工作簿中使用隐藏工作表,也可以在单独的工作簿中使用工作表。当您想要将格式“重置”为默认格式时,您可以执行类似这样的操作
shBackup.UsedRange.Copy
shReport.UsedRange.PasteSpecial xlPasteFormats
此方法存在一些问题。列宽不会粘贴格式,因此如果用户可以更改,则需要另外一种存储方法。更大的挑战可能是何时创建shBackup,但希望您现有的代码能够显而易见。
如果用户可以更改UsedRange,比如在shReport中插入行或列,则上面的代码不会起作用。但我认为这可以追溯到您创建备份副本时。
这样做的基础是Excel已经拥有了可以保存所需设置的基础结构。它有Range对象,Font对象,Interior对象等。因此,不要滚动自己的映射结构,而是使用Excel已有的存储所有属性。
答案 1 :(得分:1)
您现在制作了一个空白电子表格,其中包含第一个电子表格中的所有格式。你现在可以复制|将此新电子表格中的特殊格式粘贴回原始电子表格。