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 如何统计 某种后缀名类型的文件数量相关推荐

  1. 删除单元格_VBA(实验1)用VBA 删除某列空单元格的3种方法:删除法,转移到其他列方法,数组方法...

    1 要解决的问题:删除某列中的空单元格/空行 暂时只实现了删除一列中的空行,并没有实现多行的判断空行和删除方法.----之后再做更复杂的 1.1 需求分析 用VBA删除如下内容,解决思路都不同 删除1 ...

  2. VBA每日一练(22),VBA 的 scripting 类库 (scrrun.dll) 和 fso 详细学习

    1 scripting类库 (scrrun.dll) Scripting类库中有三个可以直接使用NEW关键字实例化的类,第一个就是常用的字典,第三个是FSO. 这个介绍的挺好 https://www. ...

  3. 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 ...

  4. VBA每日一练(4),补充VBA的基础语句知识,基本控制结构,I/O基础

    一 编程的基础知识 1.1 编程基础知识 程序的构成 程序的构成(表面):很多语句 程序的构成(本质):数据,代码 程序的构成(过程构成)---I/O:输入 input,数据处理,输出  output ...

  5. Python每日一练(24)-requests 模块获取免费的代理并检测代理 IP 是否有效

    目录 1. 通过代理服务发送请求 2. 获取免费的代理 IP 3. 检测代理 IP 是否有效 1. 通过代理服务发送请求 在爬取网页的过程中,经常会出现不久前可以爬取的网页现在无法爬取的情况,这是因为 ...

  6. VBA,用VBA进行分列(拆分列)的2种方法

    1 方法1:原列上分列 Range("a:a").TextToColumns other:=True, otherchar:=";" sub test9() ' ...

  7. C++每日一练:买苹果(两种解法)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一.题目 二.题目分析 三.代码 总结 一.题目 题目描述: 小易去附近的商店买苹果,奸诈的商贩使用了捆绑交易,只提供6个每 ...

  8. Python每日一练——第3天:三种猜数字小游戏

    前言

  9. 每日一道算法题--leetcode 169--求众数--python--两种方法

    [题目描述] [求众数I] [算法思路] [方法一] 在不要求时间空间复杂度的情况下,可以采用的方法很多,最简单易懂的一种就是对nums中每个值统计一下数量,如果数量大于nums长度的一半,就直接返回 ...

最新文章

  1. CCN:拥有雄厚实力的BCH将成为下一轮牛市的催化剂
  2. python安装pandas模块-python安装numpy和pandas的方法步骤
  3. 三个球数求最大值c语言,C语言中一个简单的球3个数最大数的程序中,最后一步:printf(apos;apos;max=%d\napos;apos;,max);怎么理解...
  4. 【PAT甲级 素数判断 进制转换】1015 Reversible Primes (20 分) Java版 4/4通过
  5. python显示表格_在Python中获取Excel表格的数量
  6. gmail收件箱标签设置_通过多个收件箱实验室有效管理您的Gmail
  7. 【区间DP】摆渡线路(2017 特长生 T4)
  8. 题解 P5301 【[GXOI/GZOI2019]宝牌一大堆】
  9. JavaScript中数组交集的最简单代码
  10. HDU4505 小Q系列故事——电梯里的爱情【水题】
  11. CVE-2017-4901 VMware虚拟机逃逸漏洞分析【Frida Windows实例】
  12. Win32 SDK创建ListView控件
  13. grasshopper python_【转】精华教学 | GH_Cpython——将原生的 Python 与机器学习框架引入Grasshopper...
  14. 机械工业出版社6000册图书都有哪些?
  15. 微型计算机系统有三类总线它们是,《微机原理、汇编语言与接口技术》韩晓茹(习题解答全套...
  16. c语言程序设计21点扑克牌,C语言程序设计 21点扑克牌游戏.doc
  17. 锻炼!!!!最佳时间!!!!希望大家都要记得锻炼身体!!!!
  18. 关于VMware上的VAAI特性详解
  19. Hadoop 入门总结
  20. java 1029: 三角形判定

热门文章

  1. 7-12 约分最简分式
  2. 裸辞2个月找不到工作,我慌了
  3. 初中计算机竞赛面试题目及答案,教资面试历年考试题目,试讲+答辩,附解析!【初中信息技术】...
  4. 680SSH二手房交易平台房屋交易网房产销售网交易网站
  5. List数组去重的几种方法
  6. jquery每天杂碎
  7. 通过端口 1433 连接到主机 localhost 的 TCP/IP 连接失败。错误:“Connection refused: connect。请验证连接属性,并检查 SQL Server 的实例正在
  8. 推荐5个免费好用的UI模板网站!
  9. 字节跳动面经-游戏岗
  10. dell服务器uefi启动不了系统安装系统安装,戴尔做uefi系统-uefi启动进不去系统怎么办呀...