繁体   English   中英

如何为不同的列/工作表循环 VBA 代码

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM