在Excel中,使用VBA,有没有一种方法来映射,存储和重新应用格式?

时间:2010-12-19 02:50:32

标签: excel vba formatting

所以,我有一个报告,我想确保格式正确,无论用户是否更改格式或excel - 是否有办法“自动映射”当前的格式文档(如果它是逐个单元格映射的,那很好),将它存储在一个宏中,以便我以后可以使用它?

2 个答案:

答案 0 :(得分:2)

您需要一份处于未更改状态的报告副本。您可以在同一工作簿中使用隐藏工作表,也可以在单独的工作簿中使用工作表。当您想要将格式“重置”为默认格式时,您可以执行类似这样的操作

shBackup.UsedRange.Copy
shReport.UsedRange.PasteSpecial xlPasteFormats

此方法存在一些问题。列宽不会粘贴格式,因此如果用户可以更改,则需要另外一种存储方法。更大的挑战可能是何时创建shBackup,但希望您现有的代码能够显而易见。

如果用户可以更改UsedRange,比如在shReport中插入行或列,则上面的代码不会起作用。但我认为这可以追溯到您创建备份副本时。

这样做的基础是Excel已经拥有了可以保存所需设置的基础结构。它有Range对象,Font对象,Interior对象等。因此,不要滚动自己的映射结构,而是使用Excel已有的存储所有属性。

答案 1 :(得分:1)

  1. 制作新工作表
  2. 选择整个(原始)工作表
  3. 复制
  4. 现在选择您在步骤1中制作的新工作表的A1
  5. 选择选择性粘贴(它位于粘贴右侧的下拉菜单中)
  6. 选择格式
  7. 您现在制作了一个空白电子表格,其中包含第一个电子表格中的所有格式。你现在可以复制|将此新电子表格中的特殊格式粘贴回原始电子表格。