因此,我目前正在使用经典的“如果单元格更改值,请运行宏”:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Range("O1"), Range(Target.Address)) Is Nothing Then
Call Macro A
End if
End Sub
现在,我想扩展宏,以便它检查范围内的每个单元格Range("O1:O40")
,并根据更改值的单元格运行一个不同的宏。不同的宏可以放在循环中,因为代码本质上是:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Range("O1"), Range(Target.Address)) Is Nothing Then
Worksheets("Data").Range("N1").Value = Worksheets("Input").Range("O1").Value
ElseIf Not Application.Intersect(Range("O2"), Range(Target.Address)) Is Nothing Then
Worksheets("Data").Range("N2").Value = Worksheets("Input").Range("O2").Value
End if
End Sub
因此,如果Worksheets("Input").Range("O1")
更改值,则必须将值复制到Worksheets("Data").Range("N1")
,以此类推,以此类推"O1:O40"
您可以使用For Each循环遍历范围
Dim cell As Range
For Each cell In Range("O1:O40")
If Not Application.Intersect(cell, Range(Target.Address)) Is Nothing Then
Worksheets("Data").Range("N" & cell.row).Value2 = cell.Value2
End If
Next cell
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句