gpt4 book ai didi

excel - Worksheet_Change 事件给出运行时错误 13 - 插入行时类型不匹配

转载 作者:行者123 更新时间:2023-12-02 22:09:14 25 4
gpt4 key购买 nike

我正在使用 Excel VBA 并有一个 worksheet_change 事件,如下所示:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target = Range("rel_type") Then
--some code
End If
End Sub

当我更改命名范围“rel_type”时,该代码效果很好。但是,如果我在电子表格中的其他位置插入一行,则会出现运行时错误 13 - 该 Sub 的第一行类型不匹配。有人知道解决方法吗?我对 Worksheet_Change 事件不太熟悉,并且似乎找不到好的文档(或者至少引用了为什么会发生此错误的文档)。谢谢。

最佳答案

这就是你正在尝试的吗?

Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Whoa

If Not Intersect(Target, Range("rel_type")) Is Nothing Then
Application.EnableEvents = False

'--some code
End If

LetsContinue:
Application.EnableEvents = True
Exit Sub
Whoa:
MsgBox Err.Description
Resume LetsContinue
End Sub

跟进

Yes, that's exactly what I needed! Thanks! It worked like a charm. I was not familiar with Intersect or the EnableEvents option, so I learned a lot here--I appreciate it. – rryanp 16 secs ago

INTERSECT:Intersect 方法将返回一个 Range 对象,表示两个或多个范围的交集。

查看此链接

主题:相交法 [Excel 2003 VBA 语言引用]

链接:Intersect - MSDN

ENABLEEVENTS:您必须使用 EnableEvents 属性来防止 VBA 代码可能引发的任何可能的无限循环。当您将此属性设置为False时,VBA 不会引发任何事件并且 Worksheet_Change事件只会运行一次。另外,您应该始终确保将 EnableEvents 属性设置回 True使下次事件能够正常调用。

HTH

席德

关于excel - Worksheet_Change 事件给出运行时错误 13 - 插入行时类型不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9827060/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com