您现在的位置是:主页 > news > 手机网站建设公司哪家好/免费网站推广工具
手机网站建设公司哪家好/免费网站推广工具
admin2025/6/29 23:13:50【news】
简介手机网站建设公司哪家好,免费网站推广工具,html5 网站开发,网络设计规划师昨天我们讨论了VBA的判断与循环,不知道小伙伴们试过了没有?有小伙伴提出问题了,说这些代码只能在一个EXCEL里实现这些功能,通常我们都要面对N多个表格时,要怎么办?嘿嘿。。VBA仅仅只是满足单个文件的处理&a…
昨天我们讨论了VBA的判断与循环,不知道小伙伴们试过了没有?有小伙伴提出问题了,说这些代码只能在一个EXCEL里实现这些功能,通常我们都要面对N多个表格时,要怎么办?嘿嘿。。VBA仅仅只是满足单个文件的处理,那么他就不配被称之为Visual Basic for Applications了。下面我们说说VBA对文件的处理。
一、文件的处理
1. Name 语句
语法:Name oldpathname As newpathname
功能:重命名一个文件、目录、或文件夹,移动一个文件。说明:在一个已打开的文件上使用 Name,将会产生错误。进行文件操作时,一定要注意错误处理。
示例: Name "E:\1.xlsx" As "E:\12.xlsx" '重命名 Name "E:\1.xlsx" As "E:\TEMP\1.xlsx" '移动文件 Name "E:\1.xlsx" As "D:\12.xlsx" '跨驱动器移动并重命名文件
2、FileCopy 语句
语法:FileCopy source, destination功能:复制一个文件。说明:如果对一个已打开的文件使用 FileCopy 语句,则会产生错误。
示例: FileCopy "E:\1.xls", "F:\12.xls" '从E盘复制到F盘
3、Kill 语句
语法:Kill pathname功能:从磁盘中删除文件。说明:Kill 支持多字符 (*) 和单字符 (?) 的统配符来指定多重文件。如果使用 Kill 来删除一个已打开的文件,则会产生错误。
示例: Kill "E:\temp.xls" ’删除E盘的TEMP.xls文件 Kill "E:\*.xls" ' 删除E盘所有xls文件' '慎用!!
4、Dir 函数
语法:Dir[(pathname[, attributes])],两个参数都是可选的,attributes表示文件属性。
功能:返回一个文件名、目录名或文件夹名称,它必须与指定的模式或文件属性、或磁盘卷标相匹配。说明:在第一次调用 Dir 函数时,必须指定 pathname,否则会产生错误。如果也指定了文件属性,那么就必须包括 pathname。 Dir 会返回匹配 pathname 的第一个文件名。若想得到其它匹配 pathname 的文件名,再一次调用 Dir,且不要使用参数。如果已没有合乎条件的文件,则 Dir 会返回一个零长度字符串 ("")。一旦返回值为零长度字符串,并要再次调用 Dir 时,就必须指定 pathname,否则会产生错误。不必访问到所有匹配当前 pathname 的文件名,就可以改变到一个新的 pathname 上。但是,不能以递归方式来调用 Dir 函数。以 vbDirectory 属性来调用 Dir 不能连续地返回子目录。
示例:
Debug.Print Dir("E:\1.xls") ’返回"1.xls"
Debug.Print Dir("E:\*.xls") ’返回按条件第一个找到的文件名。
除了以上这些,还有GetAttr、SetAttr、FileLen、FileDateTime等等,大家可自行百度一下,这里就不一一介绍了。
下面举一个各位例子,各位小伙伴日常工作时,需要把一个文件夹下所有的文件直接在EXCEL表格中列示出来,如果几个文件就无所谓了,但几十上百个的时候,就是一个很痛苦的事情了。这时,我们就可以利用上面的语句、函数和循环,在VBA中实现快速列示出来。
举例:
Sub aaa()'取得F盘DOWNLOADS文件夹下所有文件名称
fa = Dir("f:\downloads\" & "*.*")'如需要需要指定文件类型,可以把里边的*.*换成*.xlsx这样
i = 1
Do While fa <> "" ’开始循环
i = i + 1
Range("A" & i).Value = fa
fa = Dir
Loop
End Sub
大家可以试试运行,就可以看到可以把F盘DOWNLOADS下面所有的文件名都列示在表格A列上。
有好奇的小伙伴可能会提出来了,我不想每次都获取文件名时都要改一下代码的位置,要怎么办?好问题!那我们一样可以通过代码来实现运行时指定相应的文件夹即可,我们把上面的代码加点东西就行^_^。在此之前,我们还要给VBA加个助手,在EXCEL的VBA菜单中,选择工具-引用,
然后选择"microsoft script runtime"
sub aaa()'取得指定文件夹下所有文件名称
Dim strpath As String '建立文件夹变量
Dim filedlg As FileDialog '建立文件夹组件
Set filedlg = Application.FileDialog(msoFileDialogFolderPicker) ’这个就是上面引用的组件
If filedlg.Show = -1 Then
For Each fld In filedlg.SelectedItems
strpath = fld '选择的文件夹路径赋值变量strpath
Next
Else
MsgBox "请选择正确的文件夹!"
Exit Sub '退出程序
End If
fa = Dir(strpath &"\*.*")'如需要需要指定文件类型,可以把里边的*.*换成*.xlsx这样
i = 1
Do While fa <> "" ’开始循环
i = i + 1
Range("A" & i).Value = fa
fa = Dir
Loop
End Sub
各位小伙伴可以新建一个EXCEL表,然后alt+f11打开代码,将上面的代码粘贴后运行就可以了,我们就可以随时将选定的文件夹下所有文件名直接读取到我们的表格来啦,还可以根据工作需要,调整*.*的后缀,读取指定的文件名也可以,是不是很酷~