Excel vba 当某个单元格改变时执行某个过程

小弟才了解到vba有个问题请教PrivateSubWorksheet_Activate()UserForm2.HideUserForm1.ShowWithWorkshee... 小弟才了解到vba有个问题请教
Private Sub Worksheet_Activate()UserForm2.HideUserForm1.ShowWith Worksheets("客户产品及价格").Range("c1:dd1000")Set C = .Find(Range("C3").Value, LookIn:=xlValues)If Not C Is Nothing Then Range("H5") = "=IFERROR(VLOOKUP(C5,客户产品及价格!$A$2:$VJ$65536," & C.Column & ",FALSE),"""")"End IfEnd WithRange("H5").SelectSelection.AutoFill Destination:=Range("H5:H" & [A65536].End(xlUp).Row - 1)End Sub

意思就是当选择这个表时使H5这个单元格使用vlookup公式在另外一个表中查找产品对应的单价。
但是有个问题就是一上来的时候客户名称是空的,所以找不到对应的客户是在哪一行,而这段代码又必须要切换一下表才能执行,单价才能自动生成。
怎么能让
With Worksheets("客户产品及价格").Range("c1:dd1000")Set C = .Find(Range("C3").Value, LookIn:=xlValues)If Not C Is Nothing Then Range("H5") = "=IFERROR(VLOOKUP(C5,客户产品及价格!$A$2:$VJ$65536," & C.Column & ",FALSE),"""")"End IfEnd WithRange("H5").SelectSelection.AutoFill Destination:=Range("H5:H" & [A65536].End(xlUp).Row - 1)这一段在客户名称后面的那个地方C3发生改变时就执行一次?
展开
 我来答
zl998100
推荐于2017-12-16 · TA获得超过730个赞
知道小有建树答主
回答量:1067
采纳率:50%
帮助的人:1046万
展开全部


Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row > 5 And Target.Column = 3 Then
'在这里写代码,整个代码要放在sheet 模块中 ,放在sheet1 ,sheet1生效,酱紫的
End If
End Sub
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
万年金刚钻
2014-06-04 · TA获得超过1.6万个赞
知道大有可为答主
回答量:1.1万
采纳率:0%
帮助的人:3456万
展开全部
把代码放在Sheet客户产品及价格的
Worksheet_Change(…………)事件中
并判断Target的column=3和row>4是否满足,满足就运行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式