运行时错误 91 未设置对象变量或 With 块变量 - 使用公共变量

2024-02-08

我目前正在开展一个项目,该项目整合了许多工作簿中的信息。虽然应用程序的第一个版本使用Select and Activate从我在本网站上看到的信息来看,应该尽可能避免使用这些方法。因此,我目前正在重新修改代码以尽可能消除这些问题。

我正在使用的工作簿有一个非常隐藏的参考表。为了引用本表,我在第一个模块开始时做了一些公开声明;其中之一是

Public refsheet as Worksheet

请注意,打开工作簿后可能无法使用此模块。

问题1:如果我在该模块中定义了未使用的公共变量,这会导致问题吗?如果确实引起问题,这些公共变量应该在哪里定义?

In the Workbook_Open()事件,我有以下内容:

Private Sub Workbook_Open()

Set refsheet = Sheets("References")
Set corang = Sheets("Consolidation").Range("L2:AI2")

Application.ScreenUpdating = False
refsheet.Visible = xlSheetVeryHidden
Application.ScreenUpdating = True


End Sub

问题2:如果我在 Workbook_Open() 子中设置 refsheet,那么它是否可以在所有其他模块中使用(因为它已被定义为公共变量)?

当我在使用后第一次运行代码时,第一次使用 refsheet 没问题,之后任何时候使用 refsheet 时,我都会收到运行时错误 91;未设置对象变量或 With 块变量。


我的建议是:完全放弃该公共变量 - Workbook_Open 恶作剧。为什么你需要这个refsheet有变量吗?你可能不知道。公共变量不是always一个坏主意;他们只是usually是个坏主意。

只需按其参考表即可Name,或由其CodeName。例子:

Worksheets("References").Range("A1").Value = "Hello world!" ' Name is "References"
shtReferences.Range("A2").Value = "Hello world!" ' CodeName is shtReferences

第二个假设您将工作表的 CodeName 更改为shtReferences在“属性”窗口的顶行(Name),如下例所示。这是我最喜欢的引用工作表的方式,因为它可以防止用户更改工作表的情况Name工作表选项卡中的工作表。

Beware: (Name)代表CodeName,这不同于Name没有括号!我知道,有点令人困惑。

请注意,CodeName默认情况下,工作表的数量是Sheet1, Sheet2, ... 更令人困惑的是,Name床单数量也是Sheet1, Sheet2等默认情况下。但Name and CodeName/(Name)不链接并且可以独立更改。

MsgBox shtReferences.Name ' returns "References"
MsgBox shtReferences.CodeName ' returns "shtReferences"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

运行时错误 91 未设置对象变量或 With 块变量 - 使用公共变量 的相关文章

随机推荐

  • 哪种数据结构最适合 VirtualStringTree?

    我想每个曾经使用过Delphi的VirtualStringTree的人都会同意它是一个很棒的控件 它是一个 虚拟 控件 您的数据必须保存在其他地方 所以我在想什么数据结构最适合这样的任务 IMO认为数据结构必须支持层次结构 它必须快速且易于
  • 扩展器的默认控制模板

    有人 可能使用 Blend 可以为我提供 WPF Expander 的工作默认 ControlTemplate 吗 我想做一些细微的修改 但似乎找不到有效模板的来源 提前致谢 我有混合 可以帮助你 这是 Blend 为我生成的内容
  • 根据日期分割数据框

    我正在尝试根据日期将数据框分成两个 此处的相关问题已解决 根据日期将数据帧分成两部分 https stackoverflow com questions 37532098 split dataframe into two on the ba
  • Chrome 语音合成具有较长的文本

    我在 Chrome 33 中尝试使用语音合成 API 时遇到问题 它可以完美地处理较短的文本 但如果我尝试较长的文本 它就会停在中间 一旦停止后 语音合成将无法在 Chrome 中的任何地方工作 直到浏览器重新启动 示例代码 http js
  • 责任链模式是否可以很好地替代一系列条件?

    当您需要按特定顺序执行一系列操作时 责任链模式是否可以很好地替代一系列条件 用这样的条件替换简单的方法是个好主意吗 public class MyListener implements MyHttpListener if false the
  • 线程安全类是否应该在其构造函数末尾有一个内存屏障?

    当实现一个线程安全的类时 我是否应该在其构造函数末尾包含一个内存屏障 以确保任何内部结构在可以访问之前已完成初始化 或者消费者有责任在使实例可供其他线程使用之前插入内存屏障 简化问题 下面的代码中是否存在竞争危险 由于初始化和线程安全类的访
  • 使用 Tensorflow.js 计算损失梯度

    我正在尝试使用 Tensorflow js 计算与网络可训练权重相关的损失梯度 以便将这些梯度应用于我的网络权重 在 python 中 这可以使用 tf gradients 函数轻松完成 该函数需要两个表示 dx 和 dy 的最小输入 但是
  • Scala 中如何按字符串拆分字符串

    在 Ruby 中 我做了 string1 string2 split 在 Scala 中 我找不到如何split使用字符串 而不是单个字符 REPL 甚至比 Stack Overflow 更容易 我只是按原样粘贴了您的示例 Welcome
  • 动态添加一个类到 Bootstrap 'popover' 容器

    我想用一个data 元素 例如 data class或类似 将新类 或 ID 我不再挑剔了 附加到顶级弹出窗口 div 我目前的代码如下 jQuery a rel popover popover placement bottom trigg
  • 如何生成键盘事件?

    简短的摘要 我正在尝试创建一个程序 将键盘事件发送到计算机 出于所有目的 模拟事件应被视为键盘上的实际击键 原帖 我正在寻找一种使用 python 生成键盘事件的方法 假设该函数接收到一个必须模拟按下的键 如下所示 keyboardeven
  • 如何监控 FIFO?

    我想通过设置该流量的只读终端窗口来调试两个进程之间的问题 我可以简单地使用现有的标准 Linux 实用程序来实现这一点吗 FIFO 位于 run myfifo并在其中一个进程中创建 Create a FIFO if one doesn t
  • 如何将 luaXML 与 LUA 5.3 一起使用

    我将使用 LUA 我的目标是运行一个使用 lausocket 和 luaXML 来完成其任务的脚本 我使用的是 Windows 2012 Server 64 位 我的 IBM IDOL 11 文件夹中已经有 LUA 编译器的两个文件 lua
  • 我认为 SqlParameter.IsNullable 仅在……时才有意义?

    1 When SqlParameter IsNullable被设定为true 已收到null值转换为DBNull Value并发送到数据库 因此我假设设置IsNullable to true仅当 GridView 的情况下才有意义Param
  • WPF - 将组合框项目前景绑定到其值

    我创建了一个组合框 列出了 System Windows Media Colors 预定义的颜色 使用此问题中所述的方法 如何使用 XAML 在 WPF 中列出颜色 https stackoverflow com questions 562
  • Jenkins:使用 Groovy 清理工作空间

    我的 Jenkins 设置没有节点 所有构建都在同一台机器上运行 我想设置一个 Groovy 脚本来清理旧工作区 所以我想使用 proj scm processWorkspaceBeforeDeletion Nonnull Job
  • HTTPS 与 NSURLConnection - NSURLErrorServerCertificateUntrusted

    我有一个可以通过 http 连接良好的应用程序 尝试 https 时 我收到错误消息 指出根证书不受信任 我找到了我的站点证书 其 CA 证书和 CA 根证书的 URL 并通过 Safari 将它们添加到手机中 现在 当我进入 首选项 gt
  • Visual Studio 中的单元测试 MVC Web 应用程序和 QTAgent 问题

    我一直在尝试在 Visual Studio 中为 MVC 应用程序运行单元测试 并不断收到以下错误 指定的 URL http localhost 21496 与 有效目录 配置为在 IIS 中的 ASP NET 中运行的测试需要 URL 存
  • Javascript的tabIndex属性是跨浏览器的吗?

    我遇到了一个问题 并且这个答案 https stackoverflow com a 16492878 1223693解决了它 它使用该属性tabIndex 这个属性是跨浏览器的吗 哪些浏览器支持 通常我会使用 Google 来完成此任务 但
  • 无法在 SOAPUI 中导入 WSDL 文件 - NT 身份验证弹出窗口(加载 WSDL 时出错)

    我以前从未遇到过类似的问题 我尝试过 SOAP 4 0 1 和 SOAP 5 1 2 我在 Windows 上尝试过 也在 Windows Server 2008 上尝试过 我尝试导入 WSDL 出现 NT 身份验证对话框 指定 NT 身份
  • 运行时错误 91 未设置对象变量或 With 块变量 - 使用公共变量

    我目前正在开展一个项目 该项目整合了许多工作簿中的信息 虽然应用程序的第一个版本使用Select and Activate从我在本网站上看到的信息来看 应该尽可能避免使用这些方法 因此 我目前正在重新修改代码以尽可能消除这些问题 我正在使用