【问题标题】:Options Explicit, worksheet change event, Excel VBA显式选项、工作表更改事件、Excel VBA
【发布时间】:2016-11-11 20:50:36
【问题描述】:

我是 Excel VBA 的新手,但我有一些来自 Matlab 和 C++ 的小代码过期。

我编写了以下代码,用于在某个单元格更改为包含下拉列表中的某个文本字符串时显示 msgbox 消息:

Options Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$C$7" Then
        If Range("C7").Value = "Blue home" Then
        MsgBox "Hello world!"
        End If
    End If
End Sub

我收到以下错误消息:编译错误:外部过程无效

当我从代码中删除显式选项并关闭 VBE 中工具下的 require 变量声明选项时,代码可以正常工作。因此,选项显式行触发了问题。

是什么导致选项显式出现问题?我无法真正弄清楚我的代码中有任何变量需要声明。

感谢您的帮助!

【问题讨论】:

  • Option Explicit 不是Options Explicit
  • 为了您的进一步编码,如果您的Worksheet_Change() 子需要编辑同一工作表的任何单元格,然后将Application.EnableEvents = False 放在If Target.Address = "$C$7" Then 语句之后,Application.EnableEvents = True 就在其对应的End If 之前
  • 代码在普通代码模块中吗?它属于工作表代码模块。
  • 谢谢吉普德。这听起来像是一个很好的习惯 user3598756。代码放置在工作表代码模块中。

标签: vba excel


【解决方案1】:

Jeeped 在他的评论中是正确的,你拼错了它应该如下所示:

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$C$7" Then
        If Range("C7").Value = "Blue home" Then
        MsgBox "Hello world!"
        End If
    End If
End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-02-15
    • 1970-01-01
    • 2016-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多