当前位置:首页 > 技术知识 > 正文内容

如何学习VBA_3.2.18:DIR函数的补充说明

maynowei10个月前 (09-01)技术知识100

我给VBA的定义:VBA是个人小型自动化处理的有效工具。利用好了,可以大大提高自己的劳动效率,而且可以提高数据处理的准确度。我推出的VBA系列教程共九套和一部VBA汉英手册,现在已经全部完成,希望大家利用、学习。

如果您只是一般的职场VBA需求,可以打包选择7.1.3.9教程+汉英手册,第7套教程是入门,第1套教程是入门后的提高,第3套教程字典是必备的VBA之精华,第9套教程是实用的典型案例讲解。这四套教程内容掌握后足以处理一般工作中的问题,实际写代码的时候再辅助代码汉英手册,足矣!如果您想进一步提高,就需要选择高级阶段的教程了

VBA是面向对象编程的语言,博大精深。很多朋友咨询VBA的学习方法,我会陆续给大家讲解一些我的经验,大家可以慢慢体会。今日的内容是:如何学习VBA_3.2.18:DIR函数的补充说明

【分享成果,随喜正能量】这个世界,总有你不喜欢的人,也总有人不喜欢你。不管别人怎么对待你,都要珍视自己。刻意去讨人喜欢,折损的,只能是自我的尊严。不要用无数次的折腰,去换得一个漠然的低眉。我们终其一生,不是为了满足所有人,而是只需要找到和自己同频共振的那一部分人。。

3.2.18 DIR函数的补充说明

在我的教程中,多次讲到DIR函数,但很多学员还是有所误解,下面我做一下补充说明:

Dir 函数,返回一个 String,它表示与指定模式或文件属性或驱动器的卷标匹配的文件、目录或文件夹的名称。

语法:Dir [ (pathname, [ attributes ] ) ]

Dir 函数语法具有以下部分:

pathname 可选。 指定文件名的字符串表达式,可包括目录或文件夹和驱动器。如果未找到 pathname,则返回零长度字符串 ("")。

attributes 可选。 其和指定文件属性的常量或数值表达式。如果省略它,则返回与 pathname 匹配但没有属性的文件。

attributes 参数设置为:

vbNormal 0 (默认)指定没有属性的文件。

vbReadOnly 1 指定只读文件以及不带属性的文件。

vbHidden 2 指定隐藏文件以及不带属性的文件。

vbSystem 4 指定系统文件以及不带属性的文件。 在 Macintosh 上不可用。

vbVolume 8 指定卷标;如果指定任何其他属性,则忽略 vbVolume。 在 Macintosh 上不可用。

vbDirectory 16 指定目录或文件夹以及不带属性的文件。

vbAlias 64 指定文件名为别名。 仅在 Macintosh 上可用。

  • 在 Microsoft Windows 中,Dir 支持使用多字符 (*) 和单字符 (?) 通配符来指定多个文件。 在 Macintosh 上,这些字符被视为有效文件名称字符,且不能用作指定多个文件的通配符。
  • 因为 Macintosh 不支持通配符,请使用文件类型来标识文件组。 可以使用 MacID 函数指定文件类型而不是使用文件名。 例如,以下语句返回当前文件夹中的第一个 TEXT 文件的名称:Dir("SomePath", MacID("TEXT"))

若要循环访问文件夹中的所有文件,请指定一个空字符串:Dir("")

必须在首次调用 Dir 函数时指定 pathname,否则将发生错误。 如果还指定文件属性,则必须包括 pathname。

Dir 返回与 pathname 匹配的第一个文件名。 若要获取与 pathname 匹配的任何其他文件名,请重新调用 Dir 而不使用参数。 当不再有匹配的文件名时,Dir 将返回零长度字符串 ("")。 在返回零长度字符串后,必须在后续调用中指定 pathname,否则将发生错误。

可以更改为新的 pathname,而无需检索与当前 pathname 匹配的所有文件名。 但是,不能以递归方式调用 Dir 函数。 调用带 vbDirectory 属性的 Dir 不会连续返回子目录。

在 Excel for Mac 2016 中,初始 Dir 函数调用将成功。但是,对指定目录进行迭代的后续调用将导致错误。 很遗憾,这是一个已知 bug。

我20多年的VBA实践经验,全部浓缩在下面的各个教程中:

相关文章

那些技术—Listview的性能提高篇(listview提高效率)

ListView优化一直是一个老生常谈的问题,不管是面试还是平常的开发中,ListView永远不会被忽略掉,那么这篇文章我们来看看如何最大化的优化ListView的性能。 · 1.在adapter中的...

Android之自定义ListView(一)(android 自定义view绘制流程)

PS:自定义View是Android中高手进阶的路线.因此我也打算一步一步的学习.看了鸿洋和郭霖这两位大牛的博客,决定一步一步的学习,循序渐进.学习内容:1.自定义View实现ListView的Ite...

如何优雅地使用嵌入式事件标志组?

事件标志组嵌入式事件标志组是一种在嵌入式系统中广泛使用的同步机制,主要用于实现多任务间的同步与通信。事件标志组是一组事件标志位的集合,每个位代表一个事件是否发生。它允许任务等待特定的事件发生,当事件发...

C++26中同步与原子操作新变化(c++ 同步)

引言随着多核处理器和并发编程的普及,C++26进一步增强了对同步与原子操作的支持,为开发者提供了更高效、更安全的工具来应对多线程编程中的数据竞争与同步挑战。自C++11引入原子操作以来,C++标准库在...

c++ 继承简介(c++继承的概念)

24.1 — 继承简介2024 年 6 月 5 日在上一章中,我们讨论了对象组合,即从更简单的类和类型构建复杂类。对象组合非常适合构建与其部分具有“has-a”关系的新对象。但是,对象组合只是 C++...

一个快要被忘记的数据库开发岗位,但应该被尊重

数据库测试,似乎是被人遗忘的数据库职业,但依然是不错的选择。底下是我在某站找的招聘启事,就连蚂蚁金服都在积极寻找数据库测试人:要说我经历的项目,大大小小也有几十个,从 C/S, B/S, 再到 B/C...