【分享成果,随喜正能量】人与人之间都是相互的,你给人搭桥,别人为你铺路;你让人难堪,别人给你添堵。。
我给VBA的定义:VBA是个人小型自动化处理的有效工具。利用好了,可以大大提高自己的劳动效率,而且可以提高数据处理的准确度。我推出的VBA系列教程共九套和一部VBA汉英手册,现在已经全部完成,希望大家利用、学习。
如果您只是一般的职场VBA需求,可以打包选择7.1.3.9教程+汉英手册,第7套教程是入门,第1套教程是入门后的提高,第3套教程字典是必备的VBA之精华,第9套教程是实用的典型案例讲解。这四套教程内容掌握后足以处理一般工作中的问题,实际写代码的时候再辅助代码汉英手册,足矣!如果您想进一步提高,就需要选择高级阶段的教程了。
VBA是面向对象编程的语言,博大精深。很多朋友咨询VBA的学习方法,我会陆续给大家讲解一些我的经验,大家可以慢慢体会。今日的内容是:3.2.18 DIR函数的补充说明
3.2.18DIR函数的补充说明
在我的教程中,多次讲到DIR函数,但很多学员还是有所误解,下面我做一下补充说明:
Dir 函数,返回一个 String,它表示与指定模式或文件属性或驱动器的卷标匹配的文件、目录或文件夹的名称。
语法:Dir [ (pathname, [ attributes ] ) ]
Dir 函数语法具有以下部分:
pathname可选。 指定文件名的字符串表达式,可包括目录或文件夹和驱动器。如果未找到 pathname,则返回零长度字符串 ("")。
attributes可选。 其和指定文件属性的常量或数值表达式。如果省略它,则返回与 pathname 匹配但没有属性的文件。
attributes 参数设置为:
vbNormal0(默认)指定没有属性的文件。
vbReadOnly1指定只读文件以及不带属性的文件。
vbHidden2指定隐藏文件以及不带属性的文件。
vbSystem4指定系统文件以及不带属性的文件。 在 Macintosh 上不可用。
vbVolume8指定卷标;如果指定任何其他属性,则忽略 vbVolume。 在 Macintosh 上不可用。
vbDirectory16指定目录或文件夹以及不带属性的文件。
vbAlias64指定文件名为别名。 仅在 Macintosh 上可用。
l在 Microsoft Windows 中,Dir 支持使用多字符 (*) 和单字符 (?) 通配符来指定多个文件。 在 Macintosh 上,这些字符被视为有效文件名称字符,且不能用作指定多个文件的通配符。
l因为 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实践经验,全部浓缩在下面的各个教程中: