Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2169|回复: 8

[已解决]这段VBA的涵义

[复制链接]
发表于 2011-5-6 19:06 | 显示全部楼层 |阅读模式
本帖最后由 rewfs521 于 2011-5-6 19:06 编辑

请教这个区的大神,刚发到函数区了!

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Row = 2 And Target.Column = 1 And Target <> "" Then
    Range("H2").Formula = "=LOOKUP(A2,Sheet2!H2:H8,Sheet2!I2:I8)"
    End If
End Sub

这段代码的意义是什么?那些值能够修改并运用到其他地方!  为什么不是SUB开头的呢? 为什么我运用到其他地方不行呢?  是不是修改红色的部分?
最佳答案
2011-5-6 19:34
回复 rewfs521 的帖子

Private Sub Worksheet_Change(ByVal Target As Range)
’工作表变化的事件  把Target赋予单元格变量
    If Target.Row = 2 And Target.Column = 1 And Target <> "" Then
’如果Target   行号为2,列号为1,并且不为空时
    Range("H2").Formula = "=LOOKUP(A2,Sheet2!H2:H8,Sheet2!I2:I8)"
’给H2赋予公式:"=LOOKUP(A2,Sheet2!H2:H8,Sheet2!I2:I8)"
    End If
End Sub

这个程序必须放在工作表里面,不能放在模块里面。
发表于 2011-5-6 19:16 | 显示全部楼层
这是工作表变化事件,代码要放在工作表的代码区里面。
也是有Sub的,只不过前面还有了一个定语:Private
代码的意思是:当A2不为空而且它的值发生变化时,就赋予单元格H2一个公式。
建议从VBA入门书开始学习。
回复

使用道具 举报

 楼主| 发表于 2011-5-6 19:23 | 显示全部楼层
本帖最后由 rewfs521 于 2011-5-6 19:26 编辑

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Row = 5 And Target.Column = 5 And Target <> "" Then     当E5单元格发生变化时
    Range("K5").Formula = "=LOOKUP(F5,自然人其他!AE:AE,自然人其他!N:N)"   赋予K5单元格后面的公式
    End If
End Sub

我更改了下,为什么不能正确呢?
回复

使用道具 举报

发表于 2011-5-6 19:25 | 显示全部楼层
就是建议楼主从vba入门学起。
回复

使用道具 举报

 楼主| 发表于 2011-5-6 19:26 | 显示全部楼层
但是工作需要呀!   
回复

使用道具 举报

发表于 2011-5-6 19:34 | 显示全部楼层    本楼为最佳答案   
回复 rewfs521 的帖子

Private Sub Worksheet_Change(ByVal Target As Range)
’工作表变化的事件  把Target赋予单元格变量
    If Target.Row = 2 And Target.Column = 1 And Target <> "" Then
’如果Target   行号为2,列号为1,并且不为空时
    Range("H2").Formula = "=LOOKUP(A2,Sheet2!H2:H8,Sheet2!I2:I8)"
’给H2赋予公式:"=LOOKUP(A2,Sheet2!H2:H8,Sheet2!I2:I8)"
    End If
End Sub

这个程序必须放在工作表里面,不能放在模块里面。
回复

使用道具 举报

发表于 2011-5-6 19:36 | 显示全部楼层
回复 rewfs521 的帖子

本帖最后由 rewfs521 于 2011-5-6 19:26 编辑

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Row = 5 And Target.Column = 5 And Target <> "" Then     当E5单元格发生变化时
    Range("K5").Formula = "=LOOKUP(F5,自然人其他!AE:AE,自然人其他!N:N)"   赋予K5单元格后面的公式
    End If
End Sub

我更改了下,为什么不能正确呢?

把  Range("K5").Formula = "=LOOKUP(F5,自然人其他!AE:AE,自然人其他!N:N)"   赋予K5单元格后面的公式
改成  
Range("K5").Formula = "=LOOKUP(E5,自然人其他!AE:AE,自然人其他!N:N)"   
回复

使用道具 举报

 楼主| 发表于 2011-5-6 22:37 | 显示全部楼层
回复 sunjing-zxl 的帖子

我就是一瞎子,感谢!
回复

使用道具 举报

发表于 2011-5-7 15:25 | 显示全部楼层
学习了,谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-17 01:58 , Processed in 0.281123 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表