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

所以,我有一个报告,我想确保有正确的格式,无论格式是由用户还是由Excel改变 – 是否有办法“自动映射”文档的当前格式(它是很好,如果它是逐个单元格映射),将其存储在一个macros,所以我可以在以后使用它?

  1. 制作一个新的工作表
  2. select整个(原始)工作表
  3. 复制它
  4. 现在select您在步骤1中创build的新工作表的A1
  5. selectselect性粘贴(它位于粘贴右侧的下拉菜单中)
  6. select格式

您现在制作了一张空白电子表格,其中包含第一个电子表格中的所有格式。 您现在可以复制| 将新电子表格中的特殊格式随意粘贴回原始电子表格。

你需要一份报告的副本,保持不变。 您可以在同一个工作簿中使用隐藏工作表,或在单独的工作簿中使用工作表。 当你想将格式“重置”为默认值时,你可以这样做

shBackup.UsedRange.Copy shReport.UsedRange.PasteSpecial xlPasteFormats 

这种方法有几个问题。 列宽不粘贴格式,所以如果这是用户可以改变的东西,你需要另一种方法来存储这些。 更大的挑战可能是什么时候创buildshBackup,但希望你现有的代码变得明显。

如果用户可以通过在shReport中插入行或列来更改UsedRange,那么上面的代码就没有办法了。 但是我认为这一点可以追溯到您创build备份副本的时候。

这样做的基础是,Excel已经拥有了基础架构来保存所有您想要的设置。 它具有范围对象,字体对象,内部对象等。因此,而不是滚动自己的映射结构,使用Excel已经存储的所有属性。