相关疑难解决方法(0)

运行时错误'9':下标超出范围 - 仅当Excel VBE关闭时

所有,

我在Excel宏中遇到一些VBA代码的错误.这是我正在尝试的工作流程:

  • 我有一个模块运行代码来创建一个新的工作表,格式化它并添加一堆值
  • 在同一个模块中,我根据填充的最后一行确定了一系列单元格(根据前面的步骤,它总是不同的)
  • 一旦我知道这个范围,我使用下面的代码写入新创建的工作表代码模块,这样我就可以设置'change_event'.我只想在我刚刚确定的范围内的值发生变化时触发change_event:`

    Dim Startline As Long
    Startline = 1
    Dim x As Integer
    x = Errors.Count - 1
    
    Dim rng As Range
    Set rng = Range("D" & LastRow - x & ":" & "D" & LastRow)
    
           With ThisWorkbook.VBProject.VBComponents(VRS.CodeName).CodeModule
            Startline = .CreateEventProc("Change", "Worksheet") + 1
            .InsertLines Startline, "Dim rng As Range "
            Startline = Startline + 1
            .InsertLines Startline, "Set rng = Range(" & """" & CStr(rng.Address) & """" & ")"
            Startline = Startline + 1
            .InsertLines Startline, …
    Run Code Online (Sandbox Code Playgroud)

excel vba worksheet-function subscript

5
推荐指数
1
解决办法
1万
查看次数

当未打开VBE(代码窗口)时,为什么VBE.ActiveCodePane.CodeModule不起作用?

创建一个运行以下代码的表单。

MsgBox (VBE.ActiveCodePane.CodeModule)
Run Code Online (Sandbox Code Playgroud)

并出现此消息。

在此处输入图片说明

现在保存,关闭并重新打开数据库,然后看到以下消息:

运行时错误“ 91”:未设置对象变量或带块变量

在此处输入图片说明

如果您打开Visual Basic编辑器,它将再次运行。即使您关闭VBE,它仍然会运行。

但是,当您关闭整个应用程序并重新打开它,而使VBE关闭时,您会收到错误消息。

为什么?这里发生了什么?

ms-access vba access-vba

4
推荐指数
1
解决办法
2635
查看次数