分享

Excel VBA之FSO-2.5 FSO的一些其他功能-即用型

 Excel和VBA 2021-03-31

Excel VBA之FSO-2.5 FSO的一些其他功能-即用型

前景提要

熟悉我第一系列的小伙伴们,看见今天的标题就知道了,本篇应该是这一系列的收尾篇章了,没错按照计划,今天应该是FSO系列的最后一篇分享了,相对于上一系列10+篇分享,关于FSO的分享似乎少了很多,其实也和FSO的运用场景有很大的关系,通过这段时间的接触,我们也是知道FSO主要的使用场景是在文件方面的使用,而在日常的工作中,VBA更多的还是使用在工作簿,工作表等场景中,涉及文件夹的使用场景并不是很多,我们也是强调学习一些使用的知识,在这一系列我们还是坚持这样的观点,本篇我们继续介绍一些关于FSO的知识作为收尾。

今天我们主要分享两个方面的内容,一个就是通过FSO得到文件的后缀,一个就是通过FSO获取文件夹的名称,都是拿来稍作修改就可以使用的知识点,所以我依然规划到即用型上。

上代码

首先,我们来分享下如何获取文件的后缀。

其实很多童鞋都已经非常清楚后缀指的是什么了,他主要是用来区分文件类型的,日常工作中具体什么时候要使用后缀的这个功能,我暂时还没有想到,最近一段时间在写代码的过程中,也没有发现,这个功能主要是我在学习FSO的时候,从其他的网站上看到的,就顺带一起学了,现在分享给大家,说不定那天你会使用到了,顺带告诉我下使用场景哦。

Sub test()Dim s$Set fso = CreateObject("Scripting.FileSystemObject")With Application.FileDialog(msoFileDialogFilePicker)If .Show = -1 Then s = .SelectedItems(1) FileName = fso.GetExtensionName(s) MsgBox FileNameEnd IfEnd WithEnd Sub

效果如下

    不仅仅可以识别excel文件名的后缀,其他的任何文件的后缀都可以,本例就是选择了一个图片也可以找到后缀。

代码解析

这里就只有一个知识点,获得文件的后缀。

FileName = fso.GetExtensionName(s)

下面再来说下获得文件名

其实这个知识点是我计划之外的知识点,因为在之前分享2.3的时候,那篇文章我们在获取文件名的时候花费了不少的功夫,当时使用了split()方法来拆分成数组,然后使用Ubound来获得最大下标,虽然是接触了一个新的知识点,但是方法看起来比较的复杂,所以之后我又去网上找了资料,看看有没有更好的方法获得文件名的,还真的找打了,原来FSO本身就可以实现这样的功能,所以就在今天一起分享给大家

Sub test()Dim pathn$, fs As Object, FileName$, NewString$, s$, OldString$Set fs = CreateObject("Scripting.FileSystemObject") '创建FSOWith Application.FileDialog(msoFileDialogFolderPicker) '调用文件选择框 .Title = "请选择要复制的文件夹" '选择框的名字,人性化 If .Show = -1 Then OldString = .SelectedItems(1) '文件夹的路径 'FileName = Split(OldString, "\")(UBound(Split(OldString, "\"))) '通过拆分和最大下标的方式的活文件名 a = fs.GetBaseName(OldString) MsgBox a End IfEnd WithEnd Sub

这里我们还是继续使用之前在2.3分享的文件夹的移动中的代码,在那次我们为了获得文件夹的名字花费了不少的功夫,其实可以直接通过FSO获得,就是

a = fs.GetBaseName(OldString)

我们来调试下

很明显,我们这里用更加简单的代码获得了我们想要的效果,大家可以重新更新下之前的知识点。

总结

==========================================================================

今天的分享就到这里了,本次主要告诉了大家一个即用型的FSO的知识点,同时也是针对我们之前分享的内容继续了新的补充,在之前我们或的文件名的方法虽然是有效的,但是并不是最好的,原来FSO本身就有这样的功能了,大家可以对比着来学习,虽然split()的方法比较的复杂,但是在实际的使用中,split()的 使用场景更加的广泛一些

==========================================================================

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多