vba中dir函数用法 为什么我在VBA中写的DIR函数遍历出来的文件不是我想要的?
为什么我在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函数参数
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。