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报错,而本身事件里涉及的单元格不会报错 展开
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报错,而本身事件里涉及的单元格不会报错 展开
1个回答
展开全部
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就执行
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,导致我事件之后的其他过程无法运行
追答
平均值,
这个几个字
修改下
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询