VBA方法range作用于对象worksheet时失败 10

我在PrivateSubWorksheet_Change(ByValTargetAsRange)中运行代码WithSheets("数据")If.Range("g2")<>... 我在
Private Sub Worksheet_Change(ByVal Target As Range)中运行代码
With Sheets("数据")
If .Range("g2") <> "" And .Range("h2") <> "" Then
.Range("e6") = 平均值(.Range("g2"), .Range("h2"))
End If
End With
就会导致事件激活的sub报错"方法range作用于对象worksheet时失败",只要终止change事件,就不会报错.
然后我把同样的代码写入
Private Sub Worksheet_SelectionChange(ByVal Target As Range)事件,程序正常运行,没有报错.
网上有帖子说在range或者cells前加上sheets("i")就可以解决这个报错,我都试了,不能解决我的问题.
我只要不使用change事件,就不会有这个错误.
为什么?
求各位大神,各位老师指教.
就会导致事件激活的sub报错中的sub是指写在模块里的sub报错,而本身事件里涉及的单元格不会报错
展开
 我来答
柔软的Bp
科技发烧友

2018-06-26 · 智能家居/数码/手机/智能家电产品都懂点
知道大有可为答主
回答量:3万
采纳率:66%
帮助的人:8994万
展开全部
Private Sub Worksheet_Change(ByVal Target As Range)
With Sheets("数据")
If Target.Address = "$E$6" And [G2] <> "" And [H2] <> "" Then
Range("e6") = WorksheetFunction.Average(Range("g2"), Range("h2"))
End If
End With
End Sub
双击E6就执行
更多追问追答
追问
谢谢你的回答,
不过我不是要问怎么执行我的代码(提问里的代码只是举例而已),我要问的是为什么我用change事件就会报错,不用change事件就不报错?怎么解决这个报错?
这个报错是针对我事件后续的(写在模块里的)sub......end sub,导致我事件之后的其他过程无法运行
追答
平均值,

这个几个字
修改下
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式