[英]How to loop VBA code for different columns/sheets
让我先声明一下,我绝不是开发人员/代码编写者,所以在理解一切方面,我是在最基本的条件下运行。
在我为工作而创建的 excel 工作表中,我使用的代码根据条件格式检查单元格的颜色,然后更改另一个工作表中单元格的颜色以匹配它们。 由于正在控制的列/行数,我选择了宏 vs CF,并让每个使用工作表的人根据自己的喜好自定义颜色,而无需更改数百行来执行此操作。
我正在使用的代码是:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim xWRg, xDERg, xlWRg, xlDERg As Range
Dim xfnum As Long
'On Error Resume Next
Set xDERg = Sheets("Data Entry").Range("D9:D200")
Set xWRg = Sheets("Worksheet").Range("E6:E200")
For xfnum = 1 To xWRg.Count
Set xlWRg = xWRg.Cells.Item(xfnum)
Set xlDERg = xDERg.Cells.Item(xfnum)
xlDERg.Interior.Color = xlWRg.DisplayFormat.Interior.Color
Next xfnum
End Sub
我让它适用于该特定范围,但我还需要它来检查数据输入上的 G9:G200 和工作表上的 K6:K200,以及其他几列。 总共有 7 个范围需要控制。
这是为清理它而重写的代码。 注意:如果您的目标范围小于源范围,则目标范围下方的单元格可能会被着色。
Dim xWRg As Range: Set xWRg = Sheets("Worksheet").Range("E6:E200") 'Set your source range
Dim xDERg As Range: Set xDERg = Sheets("Data Entry").Range("D9:D203") 'Set your destination range, usaually same number of cells
For xfnum = 1 To xWRg.Count 'loop through the number of items in source range
'copy the conditional formating color to the destination range
xDERg.Item(xfnum).Interior.Color = xWRg.Item(xfnum).DisplayFormat.Interior.Color
Next xfnum 'loop
如果您可以澄清哪些工作表/范围将激活Worksheet_SelectionChange
事件,以及您需要添加的其他五个范围,我可以提供更好的指导,这取决于您要使用的范围的布局。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.