2016 - 2024

感恩一路有你

vba中dir函数用法 为什么我在VBA中写的DIR函数遍历出来的文件不是我想要的?

浏览量:1360 时间:2021-03-11 02:09:28 作者:admin

为什么我在VBA中写的DIR函数遍历出来的文件不是我想要的?

我的解决方案不是使用dir函数,而是使用FSO对象遍历文件夹中的所有文件,获取每个文件的文件名,然后使用正确的函数判断文件扩展名是否为XLS

我们知道dir()函数是用来查看对象的属性的,函数也是一个对象。现在假设有以下函数

如果我们使用dir(Hello),我们将得到Hello函数(object)的所有属性。如果我们使用dir(Hello()),其实它的运行过程是先执行Hello(),然后执行dir(返回值),这里是dir(“Hello world”),就是得到‘Hello world’的string对象的所有属性

!这就是区别。

VBA中dirname=Dir是什么意思?

. 还有。。是当前目录和上级目录,在代码修改下:

dim sPath as string,patha as string

dim sfilename as string

dim row as long

sPath=cells(2,1)。价值和应用程序路径分隔符

sfilename=Dir(spath&“*”,vbDirectory)

rown=4

在sfilename“”时执行

如果sfilename“”和sfilename“.”则

单元格(第1行)。Value=sfilename

结束if

sfilename=dir

row=row 1

循环

dir函数的参数错误。

应该是:

如果目录(此工作簿。路径&注意逗号。应该是西文的,你的是中文的。

编写代码以注意全角度和半角度之间的差异。

EXCEL VBA Dir函数?

通常,len(dir)(“C:001。Xls”)用于确定文件是否存在。如果返回值大于0,则返回文件001。XLS存在,否则它不存在

因为当你遍历一个子文件夹时,你用参数调用dir(folder,vbdirectory)。在子文件夹遍历包之后,再次调用dir。默认路径仍然是子文件夹,因此您犯了一个错误。建议使用以下方法:sub test002(folderspec)dim FS,F,F1,SF,FC dim mypath as string,FN as string dim I as long,lmyrow as long on error resume next set FS=CreateObject()脚本.FileSystemObject)设置f=fs.GetFolder文件夹(folderspec)为sf fn中的每个f1设置sf=f.子文件夹为fc=f.文件=f1.Name mypath=folderspec& fn&“”ShowFolderList mypath Next For Each f1 In fc fn=f1.Name NextEnd Sub

vba中dir函数用法 15个常用excel函数公式 vlookup函数参数

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。