为什么要在 VBA 或 Excel 中使用 DIM 语句?

2024-03-24

所以有一个问题关于what DIM is https://stackoverflow.com/questions/1033507/what-does-dim-stand-for-in-visual-basic-and-basic,但我找不到为什么要使用它。

据我所知,我认为这三组代码之间没有区别:

'Example 1
myVal = 2

'Example 2
DIM myVal as Integer
myVal = 2

'Example 3
DIM myVal = 2

如果我省略DIM代码仍然运行,并且在 2 或 3 个嵌套循环之后,当省略它们时,我发现输出没有任何差异。由于来自 Python,我喜欢保持代码干净*。

那么为什么我需要声明变量DIM?除了风格方面的考虑之外,是否还有使用的技术原因DIM?

* also I'm lazy and out of the habit of declaring variables.


Using Dim使代码的意图明确并防止常见错误,例如实际声明新变量的拼写错误。如果你使用Option Explicit On用你的代码(我强烈推荐)Dim成为强制性的。

这是一个使用失败的例子Dim导致(可能是坏的)问题:

myVar = 100

' later on...

myVal = 10      'accidentally declare new variable instead of assign to myVar

Debug.Print myVar     'prints 100 when you were expecting 10

Whereas this代码可以让你避免这个错误:

Option Explicit

Dim myVar as Integer
myVar = 100

' later on...

myVal = 10    ' error: Option Explicit means you *must* use Dim

有关 Dim 和 Option Explicit 的更多信息请参见此处:http://msdn.microsoft.com/en-us/library/y9341s4f.aspx http://msdn.microsoft.com/en-us/library/y9341s4f.aspx

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

为什么要在 VBA 或 Excel 中使用 DIM 语句? 的相关文章

  • 是否有非 VBA Excel 溢出公式来创建和处理数组数组?

    我在 Excel 365 中有一张工作表 其中包含 A 列和 B 列 如下所示 我想使用一些公式 不是 VBA 获取 C 列和 D 列 也就是说 我想重复每一个Title for Count次并为其添加一个流水号 A B C D 1 Tit
  • 如果 FIND 函数在 vba 中找不到任何内容,那么[重复]

    这个问题在这里已经有答案了 我目前正在自动化执行以下步骤的手动流程 1 提示用户打开一个数据文件并打开文件 2 插入4列 3 使用文件中已有的数据创建格式为 DD MM YYYY TEXT 的唯一字符串 其中文本是变量 4 使用 if 语句
  • 运行时错误“1004”:无法获取 WorksheetFunction 类的 Combin 属性

    我在 Excel 2013 的工作簿中有 VBA 函数 可以根据泊松分布计算 p 值 当 的时候events下面代码中的变量超过 1029 我得到运行时错误 1004 无法获取 WorksheetFunction 类的 Combin 属性
  • 即使 Excel 中存在多条记录,CopyFromRecordset 也仅复制并粘贴第一行

    我有一个包含表格数据的 Excel 工作表 strSQL SELECT S FIELD NAME1 S FIELD NAME2 S FIELD NAME3 from SourceData A1 IV6 S Dim cn as ADODB C
  • 使用 VBA 通过简单命令从非连续范围的并集获取值到数组中(无循环)

    我有以下任务 表面上很简单 使用 VBA 将电子表格上多个列的值复制到二维数组中 为了让生活更有趣 这些柱子并不相邻 但它们的长度都相同 显然 可以通过依次循环每个元素来做到这一点 但这看起来非常不优雅 我希望有一个更紧凑的解决方案 但我很
  • 将表行从 Word 文档复制到现有文档表特定单元格

    我正在寻找一个宏 它将内容从一个 Word 文档中的表格复制到另一个现有 Word 文档中的表格到特定单元格中 从第 5 行开始 复制后面的所有行并将其粘贴到现有文档中的第 5 行 这可能吗 在此输入图像描述 https i stack i
  • Excel VBA 导出到文本文件。需要删除空行

    我有一个工作簿 使用以下脚本将其导出到文本文件 它工作正常 但是当我打开文本文件时 末尾总是有一个空行 这导致我在生成此文本文件后运行的另一个脚本出现问题 有关如何从导出中删除空行的任何帮助 Code Sub Rectangle1 Clic
  • OpenArgs 为空问题

    我正在使用OpenArgs使用时发送值的参数DoCmd OpenForm DoCmd OpenForm frmSetOther acNormal acFormAdd acDialog value 然后我用Me OpenArgs在打开的表格内
  • 在 VBA 中循环合并单元格

    是否可以循环遍历合并的单元格vba questions tagged vba 我的范围内有 6 个合并单元格B4 B40 我只需要这 6 个单元格中的值 6 次迭代 上面的答案看起来已经让你排序了 如果您不知道合并的单元格在哪里 那么您可以
  • VBA XML V6.0 如何让它等待页面加载?

    我一直在努力寻找答案 但似乎找不到任何有用的东西 基本上 我是从一个网站上拉取的 当您在该页面上时 该网站会加载更多项目 我希望我的代码在加载完成后提取最终数据 但不知道如何让 XML httprequest 等待 Edited Sub p
  • 字典、集合和数组的比较

    我正在尝试找出字典与集合和数组相比的相对优点和功能 我发现了一篇很棒的文章here http www experts exchange com articles 3391 Using the Dictionary Class in VBA
  • laravel中过滤后如何导出excel?

    我想仅导出视图刀片中过滤的数据 我正在使用 Laravel 7 和 maatwebsite excel 3 1 和 PHP 7 4 2 我浏览了文档并应用了这个 View a href class btn btn success i cla
  • 证明 Excel VBA Scripting.Dictionary 不保留项目插入顺序

    我正在尝试决定是否为我的项目使用 Excel VBA 集合或字典 出于多种原因 我倾向于字典 但在使用字典时我会继续阅读它For Each循环检索字典项目或从字典 Items 数组读取项目时 检索顺序可能不是添加项目的顺序 这对于我的应用程
  • 无法将 Excel 值的类型“double”转换为“string”

    我正在加载 Excel 文件 如网络上许多地方所示 OpenFileDialog chooseFile new OpenFileDialog chooseFile Filter Excel files xls xlsl xls xlsx i
  • 如何在 Azure 逻辑应用中解析 Excel 电子表格

    我需要使用 Azure 逻辑应用从 Excel 电子表格中解析和提取列信息 我已经为我的逻辑应用程序设置了从 Outlook 检索最新未读电子邮件的功能 此外 我的逻辑应用程序执行 FOR EACH 来读取所有附件 来自未读电子邮件 并确保
  • MS Access - 粘贴确认事件后

    当用户将记录直接粘贴到数据表子报表中时 是否可以在显示粘贴确认消息后捕获事件 我需要它能够在审计表中创建新记录时进行记录 通过捕获更新前 更新后和插入事件 我可以轻松创建已添加的记录集合 准备将详细信息插入审核日志 但是在所有这些事件触发后
  • 使用 pythoncom 在 Python 进程之间编组 COM 对象

    我希望有人可以帮助我从 Python 进行编组跨进程调用到 Excel 我有一个通过 Python 启动的 Excel 会话 我知道当需要从单独的 Python 进程访问它时 该会话将会启动并运行 我已经使用编组让一切按预期工作CoMars
  • 复制一张工作表上的静态范围,然后根据单元格中的单个值粘贴到另一张工作表中的动态范围

    我对这个问题分为三个部分 我在 Sheet1 A1 中有一个带有周数的单元格 我在 Sheet1 B1 F1 中有一个需要复制的静态范围 然后 我需要将该值粘贴到 Sheet2 中的动态范围中 偏移量为行的周数 这是我正在为我经常使用的工作
  • EPPlus Excel 行高不一致

    我已经使用 EPPlus 生成了一个 excel 文件 在 MS Office 2007 中一切似乎都很完美 但客户端使用的是 MS Office 2010 2013 并且在第 29 行之后未设置行高 这是一个非常奇怪的问题 我已经尝试了
  • 在Google电子表格中划分整列

    我是 Google 电子表格的一个相对较新的用户 我希望 B 列中的每个单元格都是 A 列 同一行 中内容除以 5 的结果 B1 B2 B3 等 商 应为 A1 A2 A3 等 被除数 除以 5 除数 在示例中 B1 A1 5 我知道一项一

随机推荐

  • 如何镜像 UIBezierPath?

    我有一个UIBezierPath我想得到它的镜像 我怎样才能做到这一点 Method for generating a path UIBezierPath myPath self generateAPathInBounds bounding
  • byte[] 转灰度 BitmapImage

    我从 128 x 128 双精度数组开始 然后将其转换为每个双精度值具有比例值的一维字节数组 然后我获取这个字节数组并将其转换为内存流 dataStream下面 并尝试将其放入BitmapImage像这样 imgScan Width 128
  • Android:启动时在后台进行应用程序登录

    我有一个VOIP应用程序 我需要在设备启动时在后台登录应用程序 目前我的应用程序的初始化已完成UI Active onCreate 我心里有以下几点 谁能帮我解答一下我的疑惑 服务设计是必须完成这个任务吗 Which Service Rem
  • Raphael JS 组合路径

    我对 SVG 和 Raphael 还很陌生 但我已经使用 Illustrator 多年了 所以我对其工作原理有一些假设 我想组合两个应该返回单个元素的路径 我需要制作一个对话气泡 但它实际上可以是任何东西 在这种情况下 我尝试制作两个rec
  • Linux 内核 dentry 和 inode

    是否可以从给定的 dentry 和 inode 构造绝对路径 谢谢大家 如果你有一个struct path 或者可以构造一个 看看 tomoyo 是如何做到这一点的 http lxr linux no linux v2 6 37 secur
  • 为什么 JavaScript 中的 Boolean() 这么慢?

    根据 ECMAScript 规范 两者一元逻辑 NOT 运算符 http www ecma international org ecma 262 5 1 sec 11 4 9 and the Boolean 功能 http www ecma
  • 从 Firebase 查询更新变量值?

    我目前正在尝试使用从 firebase 中提取项目的值once 并使用该值填充 varitemsList 但是 尽管 itemsList 已正确填充在once调用时 它在调用外部记录为未定义 我认为这可能与 Firebase 的异步特性有关
  • Kendo UI:TabStrip HtmlHelper 添加部分视图

    在 MVC 3 中的 Kendo UI 内部 我需要为每个选项卡添加部分视图作为该选项卡的内容 这是如何完成的 文档似乎没有显示任何方法 var partialData Html Partial Views Templates p myVi
  • 对象属性随分配变量的值动态变化

    由于我是新手 这可能是一个非常基本的问题 我正在从构造函数创建一个对象 我希望将对象的属性之一链接到变量 因此 如果变量值发生变化 属性的值也应该发生变化 示例 我正在使用kineticjs并从构造函数创建一个对象Rect 我想要房产的价值
  • 使用 Symfony 插件的 PhpStorm 中缺少 Twig 模板

    PhpStorm version 9 0 2 Symfony Plugin version 0 11 109 Symfony version 3 0 1 模板引用对于放置在下面的模板文件效果很好app Resources views但不适用
  • NET Core 3.1 MVC 授权/身份验证,使用在单独的 Net Core 3.1 Web Api 中从外部获取的令牌 (JWT)

    我有3个项目 Net Core 3 1 MVC 项目 使用 JWT 身份验证的 Net Core 3 1 Web Api 项目 gt 通过实体框架连接到数据库 Xamarin 应用程序还使用 Web API 进行身份验证和数据检索 我不想从
  • Ansible:将命令参数作为列表传递

    我想将多个参数作为列表存储在变量中 vars my args verbose quiet verify 然后将列表作为带引号的参数传递给命令 最明显的是join过滤器没有按我的预期工作 它生成包含所有列表元素的单个单词 而不是每个列表元素一
  • Visual Studio 2017 - 无法初始化 powershell 主机

    Day 1 System Windows 10 Microsoft Visual Studio Community 2017 Version 15 5 5 VisualStudio 15 Release 15 5 5 27130 2026
  • 为 Visual Studio 编写解决方案分析器

    所以我需要的是为什么要为 Visual Studio 编写一个解决方案分析器 它可以 检测移动类和移动方法重构 在 Visual Studio 中显示建议的重构 应用重构 我有一个控制台应用程序可以执行此操作 使用 Roslyn 编译器 但
  • Xcode 4 在新行上带有左大括号

    似乎新的 Xcode 4 不适用XCCodeSenseFormattingOptions不再了 至少对于我来说 不管怎样 你知道如何将左大括号放在新行中以在 Xcode 4 中自动完成吗 我曾经在终端中输入此内容 但它不适用于新的 Xcod
  • Ionic React 4.11:如何在导航中推送和弹出 (IonNav)

    我是离子的新手 我刚刚安装了新发布的 Ionic React 4 11 https ionicframework com blog announcing ionic react https ionicframework com blog a
  • 我可以在没有服务器端代码的情况下以安全的方式与 firebase 集成,而无需进行用户身份验证吗?

    我的网站只有一个带有表单的页面 我没有任何用户身份验证功能 我是否仍然可以使用客户端 Firebase 集成而不以安全的方式传递服务器端代码 如果是 我如何保护我的 firebase 连接的详细信息 您可以使用 Firebase Simpl
  • 数组的类型提示是什么?

    对于大多数集合 我们可以这样做 from typing import List Tuple etc 有没有提示array As in arr array array i 正如 Carcigenicate 指出的 您可以使用array arr
  • 具有清晰背景的DialogFragment(未变暗)

    我正在尝试获取背景DialogFragment完全清楚 通过设置样式项android windowIsFloating为 true 默认值 这DialogFragment完全按照我想要的方式显示 但背景非常暗 通过设置android win
  • 为什么要在 VBA 或 Excel 中使用 DIM 语句?

    所以有一个问题关于what DIM is https stackoverflow com questions 1033507 what does dim stand for in visual basic and basic 但我找不到为什