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

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

maynowei8个月前 (09-01)技术知识76

我给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实践经验,全部浓缩在下面的各个教程中:

相关文章

Django 官方推荐的姿势:类视图(django类视图和函数视图哪个好)

作者:HelloGitHub-追梦人物在开发网站的过程中,有一些视图函数虽然处理的对象不同,但是其大致的代码逻辑是一样的。比如一个博客和一个论坛,通常其首页都是展示一系列的文章列表或者帖子列表。对处理...

CPU「离奇」飙到 100%!开发者挖出 Linux 内核 16 年老 Bug:这么多年竟无人发现?

【CSDN 编者按】每一次对旧设备的升级都仿佛是一场跨越时代的冒险。本文作者致力于将基于 PXA166 的 Chumby 8 设备从 Linux 2.6.28 版本升级到现代 6.x 版本,然而,在看...

C++并发同步核心-mutex深度解析:守护共享数据的关键

在多线程编程中,当多个线程需要访问和修改共享数据时,如果没有任何同步机制,就可能发生数据竞争(Data Race),导致程序行为不可预测、数据损坏甚至崩溃。C++标准库通过<mutex>头...

centos系统安装oracle简易客户端instantclient

一、目录1:centos 环境准备2:instant client 下载3:instant client 安装4:instant client 配置5:测试连接二、安装步骤1:zip,unzip命令安...

PL/SQL Developer连接Oracle数据库详解

序言:oracle数据库比较难搞,好不容易安装上了,但是怎么连接呢,直接在服务器里用自带的命令行操作太繁琐,所以PL/SQL Developer客户端的好处就显而易见了,今天和大家聊聊客户端具体配置方...

python-oracledb——利用python连接Oracle数据库的好用方法

这篇文章最早发布在CSDN了,最近想尝试使用一下头条,重新转移过来了。背景介绍之前使用的数据库一直是MySql,偶尔使用PostgreSQL,都是利用的数据库连接池使用;最近需要在Oracle数据库取...