使用“复制条件格式”;适用于;Excel VBA中的范围
场景:我有一个现有工作簿,所有工作表都应用了相同的条件格式(CF)。CF应用于少数列(减去标题行),例如,“应用于:”范围设置为=$a$2:$I$1048576。工作簿中已经填充了大约30页的数据 问题是:我需要更新工作簿中的所有CF。为此,我将第一张图纸上的CF更新为新CF。然后,我编写了一个简单的VBA宏,将更新后的CF应用于所有其他图纸,以避免逐张图纸更新每张图纸上的所有CF。我的代码运行良好,只有一个例外。它不会复制条件格式的“应用于:”字段 我只是复制第一行数据的格式,因为每个工作表都有不同数量的数据行。每张图纸上最后一行数据的下方是CF键(向用户显示CF生成的行颜色的含义) 我已经彻底搜索过了,找不到解决这个问题的办法 下面是我的代码。如何解决此问题使用“复制条件格式”;适用于;Excel VBA中的范围,excel,conditional-formatting,vba,Excel,Conditional Formatting,Vba,场景:我有一个现有工作簿,所有工作表都应用了相同的条件格式(CF)。CF应用于少数列(减去标题行),例如,“应用于:”范围设置为=$a$2:$I$1048576。工作簿中已经填充了大约30页的数据 问题是:我需要更新工作簿中的所有CF。为此,我将第一张图纸上的CF更新为新CF。然后,我编写了一个简单的VBA宏,将更新后的CF应用于所有其他图纸,以避免逐张图纸更新每张图纸上的所有CF。我的代码运行良好,只有一个例外。它不会复制条件格式的“应用于:”字段 我只是复制第一行数据的格式,因为每个工作表都
Sub CondFormatting()
'
' CondFormatting Macro
'
Dim WS_Count As Integer
Dim i As Integer
WS_Count = ActiveWorkbook.Worksheets.Count
Sheets(1).Range("A2:I2").Copy
For i = 2 To WS_Count
Sheets(i).Cells.FormatConditions.Delete
Sheets(i).Range("A2:I2").PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Next i
Application.CutCopyMode = False
End Sub
谢谢
**更新**
感谢Jeffery在下面的回复,我能够解决我遇到的条件格式范围问题。对于那些有类似问题的人,下面是我修改过的代码,它将格式从一个表复制到另一个表,并在整个工作簿中应用
Sub CondFormatting()
'
' CondFormatting Macro
'
Dim WS_Count As Integer
Dim i As Integer
WS_Count = ActiveWorkbook.Worksheets.Count
Sheets(1).Range("A2").ListObject.DataBodyRange.Copy
For i = 2 To WS_Count
Sheets(i).Cells.FormatConditions.Delete
Sheets(i).Range("A2").ListObject.DataBodyRange.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Next i
Application.CutCopyMode = False
End Sub
致以最诚挚的问候。当您创建(或在您的案例副本中)CF规则时,“应用于”范围由激活的选择设置。因此,如果您希望“AppliesTo”引用范围=$A$2:$I$1048576,那么在应用条件格式之前,您需要在每个工作表中选择整个范围
也就是说,对我来说,将CF应用于整个专栏似乎有些过头了。最好将每张工作表上的每个数据区域都更改为Excel表(也称为ListObject),因为这些数据区域会随着数据的增长和收缩,应用的任何条件格式也会随之增长和收缩 创建(或复制)CF规则时,“应用于”范围由激活的选择设置。因此,如果您希望“AppliesTo”引用范围=$A$2:$I$1048576,那么在应用条件格式之前,您需要在每个工作表中选择整个范围
也就是说,对我来说,将CF应用于整个专栏似乎有些过头了。最好将每张工作表上的每个数据区域都更改为Excel表(也称为ListObject),因为这些数据区域会随着数据的增长和收缩,应用的任何条件格式也会随之增长和收缩 我下面的答案有用吗?我下面的答案有用吗?谢谢Jeffrey。这应该行得通。我将尝试一下,如果这解决了我的问题,我将在这里为正在搜索现有电子表格中更新CF的解决方案的所有其他人发布最终代码。我终于有机会回到本文档并按照您的建议实施更改。它就像一个符咒。谢谢你的帮助!谢谢杰弗里。这应该行得通。我将尝试一下,如果这解决了我的问题,我将在这里为正在搜索现有电子表格中更新CF的解决方案的所有其他人发布最终代码。我终于有机会回到本文档并按照您的建议实施更改。它就像一个符咒。谢谢你的帮助!