好吧,我有一个很大的电子表格(所以我不想单独或手动设置每个单元格的颜色),并且我有许多单元格复制其他单元格。例如,我有单元格 N9、N 3、N80、N117 等等 =IF(N$931="","",N$931),因此如果 N931 中有内容,则会将其复制到 N9 等,否则为空白。我希望能够使我设置的任何背景颜色 N931 自动与 N9 中的背景颜色相同。我该怎么做?
干杯!乔恩
答案1
因为您无法使用条件格式或任何其他前端技术根据另一个单元格的颜色设置单元格颜色,所以您必须使用 VBA。
假设您的数据(带有颜色)位于第 N 行并从第 500 行开始。还假设您要复制到的第一个单元格是 N1 并引用 N500 等=if(N500="", "", N500)
。进一步假设您将该公式复制到 N499;VBA 将如下所示:
Sub copyValuesAndFormats()
Dim intRow As Integer
Dim rngCopy As Range
Dim rngPaste As Range
'Loop from Rows 1 through 499
For intRow = 1 To 499
'Set the copy and paste range
'CHANGE THE SHEET TO MATCH YOURS
Set rngCopy = Sheet3.Range("N" & intRow + 499)
Set rngPaste = Sheet3.Range("N" & intRow)
'Test to see if rows 500+ have a value
If rngCopy.Value <> "" Then
'Since it has a value, copy the value and color
rngPaste.Value = rngCopy.Value
rngPaste.Interior.Color = rngCopy.Interior.Color
'If you wish to copy the color of the font as well, uncomment the next line
'rngPaste.Font.Color = rngCopy.Font.Color
End If
Next intRow
End sub
如果使用这个,那么 N1:N499 中就不需要公式了。无论如何,这些公式都会被这段代码吹掉。