|
楼主 |
发表于 2021-4-23 09:46
|
显示全部楼层
感觉你不仅对事件不熟悉,对数组、For语句也不太熟悉。
下面的解释不知能不能让你明白:
Private Sub Worksheet_Change(ByVal Target As Range) '如果单元格的值发生改变时(Target代表被改变的单元格),激活本事件,运行下面的代码
If Target.Row = 1 Then Exit Sub '如果单元格的行号(Row)等于1,则,退出程序(不执行下面的代码)
If Target.Column <> 23 Then Exit Sub '如果单元格的列号(Column)不等于23,则退出程序
If Target.Count > 1 Then Exit Sub '如果单元格个数(Count)大于1,则,退出程序
If Target.Value = "" Then Exit Sub '如果当前单元格的值(Value)等于空,则退出程序
Application.EnableEvents = False
For i = 1 To 4
'不懂为什么Offset(0, i)右移i列,
'Target.Offset(0, i) 分别选定当前行X:AA列单元格
'为什么 i+1? 给单元格赋值的内容是Arr(,2-5列)
'把Arr(,2)输出到X、把Arr(,3)输出到Y、把Arr(,4)输出到Z、把Arr(,5)输出到AA
Target.Offset(0, i).Value = Arr(Km(Target.Value), i + 1) '不懂为什么Offset(0, i)右移i列,为什么 i+1?
Next
Application.EnableEvents = True
End Sub
|
|