有一段用于Excel的代码不明白,请哪位大神可以帮我翻译一下这段话每一句的意思,谢谢!!
PrivateSubWorksheet_Change(ByValTargetAsRange)Application.EnableEvents=FalseDimarr(0,...
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Dim arr(0, 3)
i = Target.Row
c = Target.Value
If Target.Value = "√" Then Range("a" & i).Resize(1, 4) = arr
Target.Value = c
Application.EnableEvents = True
End Sub 展开
Application.EnableEvents = False
Dim arr(0, 3)
i = Target.Row
c = Target.Value
If Target.Value = "√" Then Range("a" & i).Resize(1, 4) = arr
Target.Value = c
Application.EnableEvents = True
End Sub 展开
1个回答
展开全部
Private Sub Worksheet_Change(ByVal Target As Range)
'关闭事件自动触发机制
Application.EnableEvents = False
'从现在开始,下面的任何一行代码都不会再次触发Change事件了。
'定义一个二维数组,第一维从0到0,第二维从0到3.
Dim arr(0, 3)
i = Target.Row 'i=被修改的单元格的行标
c = Target.Value 'c=被修改的单元格的值
'如果被修改的单元格Target的值="√",那么Range("a" & i)表示A列,i行,也就是被修改单元格同行的A列单元格.Resize扩展区域(1行,4列)
'比如Range("A1").Resize(1,4)就表示以A1单元格为起点,向下扩展1-1行,向右扩展4-1列,也就是A1:D1区域 = arr这个数组
If Target.Value = "√" Then Range("a" & i).Resize(1, 4) = arr
Target.Value = c '将被修改单元格的值重新改为c变量存储的值。
Application.EnableEvents = True '恢复事件自动触发机制
End Sub
追问
谢谢大神的解释!如果我想把这段用在G4:I14这片区域呢,要怎么修改?
追答
if Target.Row Range("i14").Row then exit sub
if target.column Range("i14").column then Exit sub
'你的代码... ...
Application.EnableEvents = False
...
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询