当前位置:首页 > 经验

excelvba跨工作簿引用数据 excel vba cells函数属性

文件系统对象FSO的全称是File System Object,将一系列操作文件和文件夹的动作通过调用对象本身的属性直接实现。其包含了Drive、Folder、File、FileSystemObject和TextStream五个对象,其中Drive用来收集驱动器的信息,如可用磁盘空间或驱动器的类型;Folder用于创建、删除或移动文件夹,同时可以进行向系统查询文件夹的路径等操作;File的基本操作和Folder基本相同,所不同的是Files的操作主要是针对磁盘上的文件进行的。

对象使用方式:前期绑定:需要在“工程”中“引用”,然后在“引用”对话框中选中“Microsoft Scripting Runtime”前的复选框,然后单击“确定”。将一个变量声明为FSO对象类型:Dim fso As New FileSystemObject。后期绑定:通过CreateObject方法创建一个FSO 对象:Set fso = CreateObject(“
Scripting.FileSystemObject”)。

1、FSO对象的GetFolder方法,GetFolder方法返回Folder对象。其语法为:FileSysObj.GetFolder (FolderPath)。参数FolderPath必需,指定所需文件夹的路径,String类型,可以为相对路径或绝对路径。GetFolder方法要求FolderPath是一个有效文件夹的路径,可以先调用FolderExists方法来检验FolderPath是否存在。

2、FolderExists方法,判断指定的文件夹是否存在,若存在则返回True。语法:FileSysObj.FolderExists(FolderSpec);参数FolderSpec指文件夹的完整路径,String类型,不能包含通配符。语句示例:

Sub IfFolderExists( )
Dim fs As Object
Set fs = CreateObject("Scripting.FileSystemObject")
MsgBox fs.FolderExists("D:\Program Files")
End Sub

FSO对象使用示例:一、遍历某个文件夹下 一层子文件夹

Sub aaa()
Set fso = CreateObject("scripting.filesystemobject")
pa=range(“d2”)    'D2单元格中存有一个文件夹路径  
Set ss = fso.getfolder(pa)   ' ss 为 pa这个文件夹的“文件系统对象” 
a = 1
    For Each fd In ss.subfolders    'ss的子文件夹集合(pa路径下的一层子文件夹)
        Cells(a, “A”) = fd.Name    '子文件夹名
        Cells(a, “B”) = fd         '子文件夹全路径+名称
        a = a + 1
    Next fd
End Sub

代码作用:子文件夹名称放在A列,子文件夹全路径+名称放在B列。这里可以看出与Dir区别,Dir不能单独取子文件夹名。还有fd.Name 的用法。

二、遍历当前文件夹内的文件

Sub aaa()
Set fso = CreateObject("scripting.filesystemobject")
With Application.FileDialog(msoFileDialogFolderPicker)
    .Title = "请选择一个文件夹"
    If .Show = -1 Then       '弹出选择"文件夹"的窗口
      fd = .SelectedItems(1)
    Else
       MsgBox "未选择文件,程序中止"
       Exit Sub
    End If
End With
Set ss = fso.getfolder(fd)  
a = 1
    For Each f In ss.Files      'ss的文件集合(fd路径下的) 
        Cells(a, 1) = f.Name    '文件名
        Cells(a, 2) = f             '全路径+文件名
        a = a + 1
    Next f
End Sub

代码作用:提取文件名称,并放在A列;文件全路径+名称放在B列。ss.Files 只是fd 路径下的本层文件夹内的文件。

声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:fendou3451@163.com
标签:

  • 关注微信

相关文章