如何在Excel VBA中将所有单元格颜色从一个工作簿复制到另一个工作簿?

我有两个具有相同表名和相似数据的大型工作簿。 源表格有一堆应用于单元格的颜色,我必须将这些颜色复制到目标工作表中各自的单元格。

我试过这个build议: 如何从一个工作簿复制Excel配色scheme到另一个

但它似乎没有做任何事情。

这是我写的代码,但它locking了很长一段时间。 它看起来适合你吗?

Sub CopyColors() Dim x As Workbook Dim y As Workbook Dim SomeSheet As Worksheet Dim SomeRange As Range Set x = Workbooks.Open(" c:/PATH/Source.xlsm ") Set y = Workbooks.Open(" c:/PATH/Destination.xlsm ") y.Colors = x.Colors For Each SomeSheet In x.Worksheets For Each SomeRange In SomeSheet.Cells y.Sheets(SomeSheet.Name).Range(SomeRange.Address).Interior.ColorIndex = SomeRange.Interior.ColorIndex Next SomeRange Next SomeSheet End Sub 

我决定,更好地利用我的时间来探索其他的select,而不是等待这个泛滥。 如果我没有一个更好的主意,我会让这个晚上过夜。

您可能可以将其适应不同的工作簿中的工作表。 假设我们在同一个工作簿中有两个工作表。 我们想要复制颜色。 我们将所有单元格从第一个工作表和PasteSpecialFormats复制到第二个工作表中,而不是单独循环所有单元格:

从录音机:

 Sub Macro2() Sheets("Sheet1").Select Cells.Select Application.CutCopyMode = False Selection.Copy Sheets("Sheet2").Select Cells.Select Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False End Sub