在 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 对象的正确方法是什么? 的相关文章

  • 无法关闭打开的 Excel 工作簿

    我正在构建一个带有命令按钮 用户表单等的 Excel 文件 其中包含其他工作簿的链接 对于工作表上的命令按钮 我使用与用户表单中的命令按钮相同的代码 workbooks open path 使用用户表单命令按钮 添加以下内容 unload
  • VBA填写两个单元格之间的所有单元格

    我目前正在尝试编写一些 VBA 代码 该代码将使用两个单元格的值填充两个单元格之间的所有单元格 这是我所拥有的 我希望代码能够填写之间的所有单元格 如下所示 因此 正如您所看到的 我希望中间的所有单元格都填写为与两个角单元格相同的值 很感谢
  • WorksheetFunction 数组大小限制

    我正在尝试使用以下百分位数函数计算 VBA 内数组 arr1 中包含 100000 个值的数据集的 99 5 百分位数 Pctile Application WorksheetFunction Percentile arr1 0 995 P
  • 使用 VBA 从 Word 发送 HTTP 请求

    我正在尝试将数据从 Word 文档发送到网页 我找到了一些代码 将其粘贴到新模块中并保存 当我运行它时 我收到 编译错误 用户定义的类型未定义 My code Sub http Dim MyRequest As New WinHttpReq
  • 在vba中打乱数组[重复]

    这个问题在这里已经有答案了 我需要对数组中的值进行无重复的洗牌 我需要在代码中添加什么以避免重复 Function Resample data vector n UBound data vector ReDim shuffled vecto
  • 如何从示例中给出的某些输入自动生成某些 Excel 字符串?

    基本上我想要在Excel中执行以下操作 如果我在表 1 中输入以下内容 我需要它 A B C 1 Name Size Color 2 Shirt S M L Red Green 3 Trouser 32 34 White Black Gre
  • 每当我打开文档时,VBA 代码就会停止

    首先 很抱歉发布此内容 我知道它可能是重复的this https stackoverflow com questions 51625995 vba code stops after documents open帖子 我试图将其作为编辑发布
  • Outlook 宏中的 SenderName 为空

    我想要得到SenderName和和To属性来自于MailItem对象 但它们是空白的 我可以看到有SentOn Subject以及其他不为空的属性 有谁知道为什么这两个是空白的 这是我的代码 Sub TestMacro Dim myOlAp
  • 使用@@Identity

    我想知道如何从另一个数据库的表中获取最近生成的自动编号值 目前我正在这样做 Do Until rsA EOF Inserts new row here works Set rs New ADODB Recordset rs Open SEL
  • 将图表导出为图像有时会生成空文件

    I m doing a macro that exports all the charts in the sheet and then opens Outlook and attaches them However I ve noticed
  • 从磁盘加载多维 VBA 数组

    我正在尝试保存多维 VBA 数组 然后将其加载到磁盘或从磁盘加载 根据MSDN 网站 http msdn microsoft com en us library office gg278468 28v office 14 29 aspx 维
  • VBA - HTML 抓取问题

    我正在尝试从网站上抓取拍卖数据https www rbauction com heavy equipment auctions https www rbauction com heavy equipment auctions 我当前的尝试是
  • 在 MS Outlook 中,报告所有未收到回复的已发送邮件

    我每天都会发送大量电子邮件 但常常无法跟踪哪些邮件得到了实际回复 有没有办法使用 VBA 脚本查看上周发送的所有消息 并检查他们是否收到回复 具体来说 是一份已发送电子邮件的报告 这些电子邮件尚未从至少一个发送到的地址收到回复 我了解一点
  • 将最后几个功能添加到我的调度模板生成器中

    感谢 StackOverflow 上的一些出色的人 我几乎完成了调度模板生成器的代码 我还想补充三件事 但我遇到了一些麻烦 当前细分 我有两张表 2 员工列表 和 X 模板 员工列表中的值是从单元格 D9 开始的一列员工姓名 然后将员工值转
  • 如何让VLOOKUP在VBA中选择到最低行?

    希望自动在单元格中插入 VLOOKUP 公式 录制宏时 我指示它使用相同的公式填充下面的列 效果很好 但是 当 VLOOKUP 搜索的表发生变化 更多或更少的行 时 就会出现问题 在记录时 VLOOKUP 下降到表中的最后一行 273 但是
  • VBA 完成 Internet 表单

    我正在寻找将 Excel 中的值放入网页的代码 Sub FillInternetForm Dim IE As Object Set IE CreateObject InternetExplorer Application IE naviga
  • 输入新行并复制上面单元格中的公式

    我正在尝试创建一个 Excel 宏来执行以下操作 在文档末尾输入新行 复制上面单元格中的公式 到目前为止我有这个 Sub New Delta Go to last cell Range A4 Select Selection End xlD
  • 使用 FindElementbyXpath() 获取 Selenium Basic 中可填充框的行和列名称

    我正在使用 Selenium Basic 将电子表格中的文本填充到网站中 网站的html代码是这样的 div table cellspacing 0 border 1 style width 99 tr th style font weig
  • 如何在 Excel 中对“高”字符进行 HTML 编码或音译?

    在 Excel 中 如何将包含重音字符 大引号等的单元格内容转换为相同字符的 HTML 或音译纯文本版本 我们有一个 XLS 文档 其中包含一些 高 字符 数据已通过数据库连接提取 并且 Excel 似乎正确处理不同代码页中的各个单元格 或
  • 使用 XMLHTTP 进行抓取会在特定类名处引发错误

    我正在尝试使用此代码抓取网站以提取姓名和联系人 Sub Test Dim htmlDoc As Object Dim htmlDoc2 As Object Dim elem As Variant Dim tag As Variant Dim

随机推荐

  • 困惑: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