VBA每日一练(24)在VBA里,3种方法,使用fso 如何统计 某种后缀名类型的文件数量
fso统计文件数量
- fso统计文件数量,如果不区分文件类型,可以非常方便 fso.getfolder().files.count
- 但是fso统计某种类型的文件数量,需要遍历才行
- 可以用 for each 遍历
- 最准的方法是用 fso.getExtensionName() = "" 来判断
- 用 right(filename,3)="" 得明确的知道 后缀名位数,一般是知道是哪种 后缀名才行
- 比如要统计 xls xlsx xlsm 就必须用 fso.getExtensionName( 完整filepath)
代码1:使用后缀名匹配 fso.getextensionName
Sub jackma101()
Dim path1
path1 = "C:\Users\Administrator\Desktop\test1"Call ponyma101(path1)End SubFunction ponyma101(path1)
' 先查某类型的文件数量Dim fso As Object
Dim fd1 As Object
Dim f1 As ObjectSet fso = CreateObject("scripting.filesystemobject")
Set fd1 = fso.getfolder(path1)x1 = fd1.Files.Count
Debug.Print "所有文件数为:" & x1For Each f1 In fd1.FilesIf fso.getextensionname(path1 & "\" & f1.Name) = "txt" Then
' fso.getfile(path1).getextensionname
' f1.getextensionname
'只有一种语法可这么用y1 = y1 + 1End If
NextDebug.Print ".txt文件数为:" & y1End Function
代码2 简单方法 if filename like "*.txt" then
Sub jackma101()
Dim path1
path1 = "C:\Users\Administrator\Desktop\test1"Call ponyma101(path1)End SubFunction ponyma101(path1)
' 先查某类型的文件数量Dim fso As Object
Dim fd1 As Object
Dim f1 As ObjectSet fso = CreateObject("scripting.filesystemobject")
Set fd1 = fso.getfolder(path1)x1 = fd1.Files.Count
Debug.Print "所有文件数为:" & x1For Each f1 In fd1.FilesIf f1.Name Like "*.txt" Then
'只有一种语法可这么用
' If fso.getextensionname(path1 & "\" & f1.Name) = "txt" Then
' fso.getfile(path1).getextensionname
' f1.getextensionnamey1 = y1 + 1End If
NextDebug.Print ".txt文件数为:" & y1End Function
代码3 局限性
- UCase(Right(Item, 3))
- 大小写转换函数 ucase 和 lcase
- 别人写的这个,right(filename,3) 这个我觉得不准,比如 后缀名是 xlsm 这个就识别不了,不如 fso.getextensionname()
Private Sub Command1_Click()Dim fso As Object, fpath As StringDim myfolder As Objectfpath = "E:\初中同学"Set fso = CreateObject("scripting.filesystemobject")Set myfolder = fso.getfolder(fpath)For Each Item In myfolder.FilesIf UCase(Right(Item, 3)) = "TXT" Then Print ItemNextSet fso = Nothing
End Sub
LCase 函数
语法:LCase(string)
说明:返回转成小写的 String。
必要的 string 参数可以是任何有效的字符串表达式。如果 string 包含 Null,将返回 Null。
只有大写的字母会转成小写;所有小写字母和非字母字符保持不变。
UCase 函数
语法:UCase(string)
说明:返回 Variant (String),其中包含转成大写的字符串。
必要的 string 参数为任何有效的字符串表达式。如果 string 包含 Null,将返回 Null。
只有小写的字母会转成大写;原本大写或非字母之字符保持不变。
StrConv 函数
语法:StrConv(string, conversion, LCID)
说明:返回按指定类型转换的 Variant (String)。
StrConv 函数的语法有下面的命名参数:
string 必要参数。要转换的字符串表达式。
conversion 必要参数。Integer。其值的和决定转换的类型。
LCID 可选的。如果与系统LocaleID不同,则为LocaleID(系统LocaleID为缺省值。)
conversion 参数的设置值为:
vbUpperCase 值为1 将字符串文字转成大写。
vbLowerCase 值为2 将字符串文字转成小写。
vbProperCase 值为3 将字符串中每个字的开头字母转成大写。
vbWide* 值为4* 将字符串中单字节字符转成双字节字符。
vbNarrow* 值为8* 将字符串中双字节字符转成单字节字符。
vbKatakana** 值为16** 将字符串中平假名字符转成片假名字符。
vbHiragana** 值为32** 将字符串中片假名字符转成平假名字符。
vbUnicode 值为64 根据系统的缺省码页将字符串转成 Unicode。 (在Macintosh中不可用。)
vbFromUnicode 值为128 将字符串由 Unicode 转成系统的缺省码页。 (在Macintosh中不可用。)
注意 这些常数是由 VBA 指定的。可以在程序中使用它们来替换真正的值。其中大部分是可以组合的,
例如 vbUpperCase + vbWide,互斥的常数不能组合,例如 vbUnicode + vbFromUnicode。当在不适用
的区域使用常数 vbWide、vbNarrow、vbKatakana,和 vbHiragana 时,就会导致运行时错误。
下面是一些一般情况下的有效分界符:Null (Chr$(0)),水平制表符 (Chr$(9)),换行 (Chr$(10)),
垂直制表符 (Chr$(11)),换页 (Chr$(12)) ,回车 (Chr$(13)),空白 (SBCS) (Chr$(32))。在 DBCS
中,空白的实际值会随国家/地区而不同。
说明:在把 ANSI 格式的 Byte 数组转换为字符串时,您应该使用 StrConv 函数。当您转换 Unicode
格式的这种数组时,使用赋值语句。
补充: VBA函数Lcase相对应的 函数为Lower
VBA函数Ucase相对应的函数为Upper
VBA每日一练(24)在VBA里,3种方法,使用fso 如何统计 某种后缀名类型的文件数量相关推荐
- 删除单元格_VBA(实验1)用VBA 删除某列空单元格的3种方法:删除法,转移到其他列方法,数组方法...
1 要解决的问题:删除某列中的空单元格/空行 暂时只实现了删除一列中的空行,并没有实现多行的判断空行和删除方法.----之后再做更复杂的 1.1 需求分析 用VBA删除如下内容,解决思路都不同 删除1 ...
- VBA每日一练(22),VBA 的 scripting 类库 (scrrun.dll) 和 fso 详细学习
1 scripting类库 (scrrun.dll) Scripting类库中有三个可以直接使用NEW关键字实例化的类,第一个就是常用的字典,第三个是FSO. 这个介绍的挺好 https://www. ...
- VBA每日一练(18),数组array的用法 redim preserve等
定义方式 dim arr11 (5) dim arr12 (0 to 5 ) dim arr13 (1 to 5) dim arr21(1,5) dim arr22(0 to 1 ,0 to 5 ...
- VBA每日一练(4),补充VBA的基础语句知识,基本控制结构,I/O基础
一 编程的基础知识 1.1 编程基础知识 程序的构成 程序的构成(表面):很多语句 程序的构成(本质):数据,代码 程序的构成(过程构成)---I/O:输入 input,数据处理,输出 output ...
- Python每日一练(24)-requests 模块获取免费的代理并检测代理 IP 是否有效
目录 1. 通过代理服务发送请求 2. 获取免费的代理 IP 3. 检测代理 IP 是否有效 1. 通过代理服务发送请求 在爬取网页的过程中,经常会出现不久前可以爬取的网页现在无法爬取的情况,这是因为 ...
- VBA,用VBA进行分列(拆分列)的2种方法
1 方法1:原列上分列 Range("a:a").TextToColumns other:=True, otherchar:=";" sub test9() ' ...
- C++每日一练:买苹果(两种解法)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一.题目 二.题目分析 三.代码 总结 一.题目 题目描述: 小易去附近的商店买苹果,奸诈的商贩使用了捆绑交易,只提供6个每 ...
- Python每日一练——第3天:三种猜数字小游戏
前言
- 每日一道算法题--leetcode 169--求众数--python--两种方法
[题目描述] [求众数I] [算法思路] [方法一] 在不要求时间空间复杂度的情况下,可以采用的方法很多,最简单易懂的一种就是对nums中每个值统计一下数量,如果数量大于nums长度的一半,就直接返回 ...
最新文章
- CCN:拥有雄厚实力的BCH将成为下一轮牛市的催化剂
- python安装pandas模块-python安装numpy和pandas的方法步骤
- 三个球数求最大值c语言,C语言中一个简单的球3个数最大数的程序中,最后一步:printf(apos;apos;max=%d\napos;apos;,max);怎么理解...
- 【PAT甲级 素数判断 进制转换】1015 Reversible Primes (20 分) Java版 4/4通过
- python显示表格_在Python中获取Excel表格的数量
- gmail收件箱标签设置_通过多个收件箱实验室有效管理您的Gmail
- 【区间DP】摆渡线路(2017 特长生 T4)
- 题解 P5301 【[GXOI/GZOI2019]宝牌一大堆】
- JavaScript中数组交集的最简单代码
- HDU4505 小Q系列故事——电梯里的爱情【水题】
- CVE-2017-4901 VMware虚拟机逃逸漏洞分析【Frida Windows实例】
- Win32 SDK创建ListView控件
- grasshopper python_【转】精华教学 | GH_Cpython——将原生的 Python 与机器学习框架引入Grasshopper...
- 机械工业出版社6000册图书都有哪些?
- 微型计算机系统有三类总线它们是,《微机原理、汇编语言与接口技术》韩晓茹(习题解答全套...
- c语言程序设计21点扑克牌,C语言程序设计 21点扑克牌游戏.doc
- 锻炼!!!!最佳时间!!!!希望大家都要记得锻炼身体!!!!
- 关于VMware上的VAAI特性详解
- Hadoop 入门总结
- java 1029: 三角形判定
热门文章
- 7-12 约分最简分式
- 裸辞2个月找不到工作,我慌了
- 初中计算机竞赛面试题目及答案,教资面试历年考试题目,试讲+答辩,附解析!【初中信息技术】...
- 680SSH二手房交易平台房屋交易网房产销售网交易网站
- List数组去重的几种方法
- jquery每天杂碎
- 通过端口 1433 连接到主机 localhost 的 TCP/IP 连接失败。错误:“Connection refused: connect。请验证连接属性,并检查 SQL Server 的实例正在
- 推荐5个免费好用的UI模板网站!
- 字节跳动面经-游戏岗
- dell服务器uefi启动不了系统安装系统安装,戴尔做uefi系统-uefi启动进不去系统怎么办呀...