有一段用于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
展开
 我来答
unsamesky
2016-09-08 · TA获得超过2733个赞
知道小有建树答主
回答量:859
采纳率:100%
帮助的人:414万
展开全部
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
...
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式