在 VBA 上声明和定义 FileSystemObject 对象的正确方法是什么?

2024-03-20

我正在阅读有关如何声明 FileSystemObject 对象的信息,发现了令人困惑的信息。是因为声明方式不同吗?

我向您展示了我发现的一些声明和定义 FileSystemObject 对象的方法:

  1. Dim FSO As FileSystemObject Set FSO = New FileSystemObject

  2. Dim FSO As New FileSystemObject

  3. Dim FSO As Object Set FSO = CreateObject("scripting.filesystemobject")

声明 FileSystemObject 对象的正确方法是什么?


3种方式都是正确的。您已经找到了两种不同的使用对象的方法。

  • 前两种方式的意思是“早期绑定”。
  • 最后一种方式意味着“后期绑定”。

中间道路是第一种道路的捷径,但并不完全。 新手 VBA 用户最好避免使用复杂的代码, 因为对对象变量的任何引用都会创建该对象的新实例, 如果对象变量=Nothing

早期绑定: 必须在 VBA - 工具 - 参考中链接使用的库/模块, 在这段时间微软脚本运行时图书馆 如果目标计算机上不存在该模块/代码,则执行将失败。 据报道,早期绑定速度明显更快。 早期绑定在开发过程中提供了对象方法和属性以及命名常量的智能感知编辑器建议

后期绑定: 无需链接使用的外部库/模块 - 更好的机器间可移植性。 据报道,后期绑定速度较慢。 后期绑定不提供智能感知,并且对象特定常量必须显式声明或由其值提供。

参见例如条件代码编译,基于项目范围的条件编译参数 Earlybinding :

Sub EarlyVsLateBindingtest()

#If Earlybinding Then
   Dim oFS As Scripting.FileSystemObject
   Set oFS = New Scripting.FileSystemObject
#Else
   Const TemporaryFolder = 2
   Dim oFS As Object
   Set oFS = CreateObject("Scripting.FileSystemObject")
#End If

oFS.GetSpecialFolder (TemporaryFolder)

End Sub

https://superuser.com/questions/615463/how-to-avoid-references-in-vba-early-binding-vs-late-binding/1262353?noredirect=1#comment1859095_1262353 https://superuser.com/questions/615463/how-to-avoid-references-in-vba-early-binding-vs-late-binding/1262353?noredirect=1#comment1859095_1262353

See also

https://wordmvp.com/FAQs/InterDev/EarlyvsLateBinding.htm https://wordmvp.com/FAQs/InterDev/EarlyvsLateBinding.htm

https://support.microsoft.com/en-gb/help/245115/using-early-binding-and-late-binding-in-automation https://support.microsoft.com/en-gb/help/245115/using-early-binding-and-late-binding-in-automation

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

在 VBA 上声明和定义 FileSystemObject 对象的正确方法是什么? 的相关文章

  • 每次更改工作表时运行宏

    我对宏还很陌生 每次更新 更改或其他任何操作时 我都需要在工作表上运行一些代码 这是我需要运行的代码 我怎样才能做到这一点 Sub UnMergeFill Dim cell As Range joinedCells As Range For
  • 如何使用 VBA 在 PowerPoint 中取消形状组合后按类型重新组合形状

    继我的出色回答之后上一个问题 https stackoverflow com questions 74339247 how to rename shapes within grouped groups in powerpoint with
  • VBA - 从 Internet Explorer 的框架通知栏中选择另存为

    我正在尝试通过以下方式下载另存为的文件框架通知栏的互联网浏览器 然而 经过大量搜索后 我只找到了点击解决方案save在框架通知栏上 到目前为止 我一直在尝试另存为示例站点上的文件 http www tvsubtitles net subti
  • 将 vbCrLf 应用于文本框的内容

    我在 Excel vba 项目中有一个用户窗体 在设计时它是空的 在表单初始化事件中 我有以下代码 Private Sub UserForm Initialize txtSQL value SELECT MyName ColY vbCrLf
  • 在 VBA 中接收文件创建通知,无需轮询

    我正在编写一个与 ScanSnap 扫描仪集成的程序 ScanSnap 扫描仪不支持 TWAIN 扫描文档后 它会自动保存为 PDF 我想监视保存文件的目录 并在文件出现 并完成写入 时采取一些操作 一种简单的方法是使用 MS Access
  • 更改整个工作表的背景颜色

    有没有办法将背景颜色更改为xlNone 例如整张纸 我发现你可以添加背景图片 但是如何更改工作表中所有单元格的颜色呢 您可以使用以下代码轻松完成此操作 Public Sub Demo set color WorksheetName Cell
  • 当单元格值和复选框更改时更改工作表

    我有一本包含多个工作表的工作簿 我有一个菜单页面 工作表 其中包含多个用户选择 输入新订单 更新订单等 每个选项旁边都有一个复选框 根据选中的复选框 单元格F4 F21改变自0 to 1并且 细胞B1更改我想要去的工作表的名称 我的主菜单工
  • 使用 Excel VBA 在 Outlook 电子邮件中使用 HTML 设置背景图像

    我正在尝试使用 Excel VBA 创建一封有关澳大利亚儿童癌症研究所的电子邮件 并带有背景图像 CCIALittleGirl jpg 然后 我希望在其上方有一个文本或文本框 最好是带有白色粗体文本 我可以在运行时填充这些文本 我可以在电子
  • 查询不可更新

    我正在尝试使用 BE SQL Server 2012 Express 中的记录更新本地 Access 2007 表 我的步骤在这里 SQL Server中存在带有4个参数的存储过程来获取所需的记录 Access VBA中有调用SP并进行临时
  • 通过vba在每个空间范围之间添加求和公式

    我试图进行自动化 但我被困在这里 我需要在空间范围之间动态添加总和公式 我完全迷失了使用 VBA 添加公式的能力 任何人都可以帮助我 先感谢您 我假设您想要的是 如果单元格中有空白 您希望将所有其他元素相加并将结果放置在该空白中 可能有很多
  • 在 Excel 2010 中添加基本功能区的 VBA 代码?

    我已经使用产品在 C addin express 中为 Excel 编写功能区 但我需要知道如何使用 vba 生成功能区 有人能为我提供一些代码来为此在工具栏中插入一个额外的功能区吗 我所说的功能区是指上面写着 公式 数据 评论 等的地方
  • 列表框错误“无法设置列表属性。属性值无效。”

    我有一个带有列表框 文本框 组合框和保存按钮的用户表单 下面是我的保存按钮代码 Private Sub cmdsave Click Dim x As Integer x Me ListBox1 ListCount If Me cmbtran
  • 使用 VBA 在另一个 Access 实例中打开特定窗体

    所以我在这里四处查看并找不到我的问题的答案 至少不完全是 案例如下 我在 DBase1 中 想要单击一个按钮并在单独的访问实例中打开 DBase2 中的 NeuSteckbrief 表单 我设法使用以下代码在单独的实例中打开 DBase2
  • VBA Office2010 Shapes.PasteSpecial 失败

    我在将 VBA 代码从 Office2003 迁移到 Office2010 时遇到问题 我想将单元格 Excel 的文本复制到Powerpoint Office2003生成了一个新的文本框 文本样式与Excel中相同 现在我的代码在 Off
  • 如何刷新幻灯片放映中的活动幻灯片?

    基于我的最后一个问题 https stackoverflow com questions 14503054 change the image of an image shape我得到了正确的代码来更改形状的图像 不幸的是 这不会更新活动演示
  • 通过文本自动创建到另一个工作表的超链接

    我想知道如何基于各自工作表中两个单元格具有的相同文本值 通过脚本自动创建从一个 Excel 工作表到另一个 Excel 工作表的超链接 如果这可以在没有脚本的情况下完成 使用某种公式 如 VLOOKUP 这将是更好的选择 谢谢你的时间 使用
  • 当行数 = 0 时删除 Excel 列中的单元格

    我试图删除电子表格中某一列中的所有单元格 0 并 召唤 不在该列顶部的值 我目前正在使用 Dim row index As Integer Dim col index As Integer row index 7 col index 16
  • Excel VBA - 循环文件夹中的文件、复制范围、粘贴到此工作簿中

    我有 500 个包含数据的 Excel 文件 我会将所有这些数据合并到一个文件中 实现此目标的任务列表 我想循环遍历文件夹中的所有文件 打开文件 复制此范围 B3 I102 将其粘贴到活动工作簿的第一张工作表中 重复但在下面粘贴新数据 我已
  • 更改索引设置访问 VBA

    我正在尝试自动化 Access 中的流程 我希望自动化的步骤之一是更改表中某些字段的索引设置 我需要这样做来提高后续查询的速度 使用索引查询速度大约快 100 倍 无论如何 假设我的表名为 Cars 如下所示 ID Name Charact
  • 用于将 MS Word 表导出到 Excel 工作表的宏

    我有一个包含许多表格的word文档 有谁知道如何编写宏将此类表导出到不同的 Excel 工作表 答案摘自 http www mrexcel com forum showthread php t 36875 http www mrexcel

随机推荐

  • 困惑:Django“无法导入app.views”但可以导入app,在WSGI中?

    我遇到了一个奇怪的 Django 问题 使用 mod wsgi 运行 Django 姜戈正在寻找urls py 然后说 ViewDoesNotExist Could not import app views Error was No mod
  • 在 .dot 树中强制执行水平节点排序

    我正在尝试使用 GraphViz 重新创建二叉搜索树的示例图 它最终应该是这样的 这是我的第一次尝试 digraph G nodesep 0 3 ranksep 0 2 margin 0 1 node shape circle edge a
  • 将值从文本文件传递到数组

    我的代码有一些问题 我的程序根据来自输入文件的三个带的颜色计算电阻值 然后打印到输出文件 输入文件示例 红 绿 蓝绿色 灰色 黄色 输出文件示例 电阻 欧姆 680电阻 千欧姆 1420 然而 每次我运行该程序时它都会崩溃 我进行了一些调试
  • ngrx 和 ngxs 之间的性能差异? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我想在我的 Angular 6 应用程序中使用 ngxs 进行状态管理 但我不确定它对于大型项目是否成熟 我找不到任何有关 ngrx 和 ngx
  • 是否可以定义一个包含对象的对象?

    我有这个对象 var a 1 topicId 1 subTopicId 1 topicName x subTopicName x 2 topicId 1 subTopicId 2 topicName x subTopicName x 62
  • roc_auc_score 和plot_roc_curve 结果不同

    我正在训练一个RandomForestClassifier sklearn 预测信用卡欺诈 然后当我测试模型并检查 rocauc 分数时 我在使用时会得到不同的值roc auc score and plot roc curve roc au
  • React ApexCharts 按时间间隔更新图表

    我正在构建一个 React 应用程序 它将显示一些需要通过 api 调用不断更新的图表 使用 ApexCharts 它们将显示来自不同来源的传感器数据 我根据需要设计和配置了图表 但是如果我通过更改状态数组来更新数据setInterval表
  • AngularJs $q 承诺与 async/await 兼容吗?

    我正在使用 TypeScript 版本分别为 9 07 1 5 11 和 3 7 5 开发 Angular AngularJs 混合应用程序 我们所有的 HTTP 请求 甚至是由新的 Angular 组件发出的请求 都使用以纯 Javasc
  • 在 Clojure 中使用引用

    在 clojure 中引用会导致不评估 a and a返回相同的结果 a 和 a 之间有什么区别 一个不评估 另一个评估自身 但这与不评估相同吗 a是简写 quote a eval quote form 回报form根据定义 也就是说 如果
  • Angular 2 错误和 Typescript - 如何调试?

    我刚刚开始了一个学习 Angular2 和 Typescript Javascript 的项目 我有 Java 背景 我调试项目的方法通常是堆栈跟踪 编译错误以及 在较大的项目上 大量测试用例的组合 然而 其中大部分似乎并没有直接转化为网络
  • 如何在 C 程序中最好地实现字符串到数字的映射

    我有一组明确的字符串及其对应的数字 kill gt 1 live gt 2 half kill gt 3 dont live gt 4 列表包含 30 个这样的字符串及其数字映射 如果用户输入 kill 我需要返回1 如果他输入 dont
  • Azure 缓存无法跨 VIP 交换保留会话状态?

    作为这篇文章的后续 在 Azure 云服务中启用共置会话缓存 https stackoverflow com questions 20964697 enabling co located session caching in an azur
  • 使用参数而不是硬编码字符串时,Postgres 查询非常慢

    我遇到了这个 Postgres 问题 如果我使用参数而不是在查询字符串上硬编码其值 则相同的查询需要很长时间才能执行 列名称是 media type 它是 VARCHAR 20 我使用 Symfony2 和 Doctrine2 ORM 从
  • Sqlite3 ON DELETE CASCADE 不起作用

    我的数据库中有多个表 我将仅使用其中 2 个作为示例 篮表 CREATE TABLE Basket id basket integer primary key autoincrement title text 电脑桌 CREATE TABL
  • 根据值计数计算的数据透视表字段

    我有一个数据透视表 在值中我有一些字段的计数 Region Count of Actuals Count of Budgets Percentage of Actuals Asia 40 80 我想在数据透视表 实际值百分比 中添加一个计算
  • Kendo UI 网格 - 客户端模板:转义 # 符号

    我正在使用 Kendo UI 的网格以及 Twitter Bootstrap Twitter Bootstrap 有一个内置的弹出窗口 模式 可以通过以下方式调用 a href class text yellow Login a 在我的 K
  • 如何在 React 中从 eslint 解析器中排除 css 文件

    我需要从 eslint 解析器中排除 css 文件 目前当我跑步时eslint src 这是检查所有文件 包括 css 文件 请在下面找到我的 eslintrc 文件内容 module exports parser babel eslint
  • GlobalKey 和 GlobalKeyObject 有什么区别?

    我想知道两者之间的区别 更重要的是现实世界的使用差异GlobalKey and GlobalObjectKey 什么时候使用哪个 什么时候避免 唯一的区别在于他们的方式 操作员行为 全局密钥 https api flutter dev fl
  • 用于查找已安装设备的驱动器号的批处理脚本

    我正在尝试编写一个批处理脚本来定位特定的已安装设备 我在 Windows 7 中 我知道该设备将具有文件夹驱动器 custom 因此我想查看所有可能性来查找具有此路径的设备 这是我到目前为止所拥有的 echo off setLocal En
  • 在 VBA 上声明和定义 FileSystemObject 对象的正确方法是什么?

    我正在阅读有关如何声明 FileSystemObject 对象的信息 发现了令人困惑的信息 是因为声明方式不同吗 我向您展示了我发现的一些声明和定义 FileSystemObject 对象的方法 Dim FSO As FileSystemO