海量编程文章、技术教程与实战案例

网站首页 > 技术文章 正文

DIR函数的补充说明(VBA学习方案系列讲座之30讲)

yimeika 2025-06-05 20:00:58 技术文章 4 ℃

《如何学习VBA》,是我对初学人员学习方法的一辅导,内容是针对我的第7套教程《VBA之EXCEL应用》和第一套教程《VBA代码解决方案》,在其中,我讲到了很多有关VBA的学习方法及在教程中一些知识结构的补充说明。虽然是辅助教材,但也突出了我编程思想:积木编程;及我对于VBA的应用定义:VBA是实现个人小型数据自动化的有效工具(手段)。今日的内容是第30讲: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。

第1套教程:VBA代码解决方案

第2套教程:VBA数据库解决方案

第3套教程:VBA数组与字典解决方案

第4套教程:VBA代码解决方案之视频(第一套的视频讲解)

第5套教程:VBA中类的解读和利用

第6套教程:VBA信息获取与处理

第7套教程:VBA之EXCEL应用

第8套教程:VBA之Word应用(2021年5月份推出)

上述教程的学习顺序:

① 7→1→3→2→6→5或者7→4→3→2→6→5。

② 7→8

  • 如何学习VBA呢? 概括的说就是: 学习过程中要信、解、受、持,更要有回向的业力。无论您在学习的任何阶段,都要对照教程的知识点加持自己的实际工作,总会有丰厚的收获。(W:VBA6337)
  • 教程学习顺序是7,1(或4),3,2,6,5。第7套《VBA之Excel应用》是对VBA基本的讲解;第1(或4)套《VBA代码解决方案》是《VBA之Excel应用》的提高;第3套《VBA数组与字典解决方案》是VBA应用的专题讲解,教程中讲解的专题是数组和字典,大家会在这套教程中看到非常全面的数组与字典的应用;第2套《VBA数据库解决方案》也是VBA应用的专题讲解,教程讲解的专题是数据库,大家会在这套教程中看到VBA连接Excel与accdb的全面应用;第6套《VBA信息获取与处理》是整个VBA应用的提高;第5套《VBA中类的解读及应用》是VBA的最高理论“类”“接口技术”的讲解。第8套教程《VBA之Word应用》需要在第7套教程之后学习。
  • 如果说《VBA之EXCEL应用》是大家认识VBA的阶段,那么《VBA代码解决方案》就要求大家能理解VBA,理解我推出的“积木编程”思想,理解我对VBA应用的定义:VBA是实现个人小型数据自动化的有效工具(手段)。

Tags:

最近发表
标签列表