Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
删除文件夹VBA中的非Excel文件_Vba_Excel - Fatal编程技术网

删除文件夹VBA中的非Excel文件

删除文件夹VBA中的非Excel文件,vba,excel,Vba,Excel,我想使用VBA删除文件夹中的非Excel文件 这是我在这里找到的代码: Dim fName作为字符串 fName=Dir(“C:\test\*.*”) 当fName“”时执行 如果fName“fileA.xls”,则为'or.txt或.csv或其他名称 终止“C:\test\”和fName 如果结束 fName=Dir 环 我这样更改了代码: folderPath = Dir("C:\test\") Do While folderPath <> "" If folderPath

我想使用VBA删除文件夹中的非Excel文件

这是我在这里找到的代码:

Dim fName作为字符串
fName=Dir(“C:\test\*.*”)
当fName“”时执行
如果fName“fileA.xls”,则为'or.txt或.csv或其他名称
终止“C:\test\”和fName
如果结束
fName=Dir
环
我这样更改了代码:

folderPath = Dir("C:\test\")
Do While folderPath <> ""
  If folderPath <> "*.xls" Then'or .txt or .csv or whatever
     Kill "C:\test\" & folderPath 
  End If
  folderPath = Dir
Loop
folderPath=Dir(“C:\test\”)
当folderPath“”时执行此操作
如果folderPath“*.xls”,则为'or.txt或.csv或其他内容
终止“C:\test\”和folderPath
如果结束
folderPath=Dir
环
它给了我一个错误,说文件找不到。但我的文件夹中有一个文件需要删除


需要一些指导。

根据需要使用以下选项。注意:最好使用
Like
操作符来比较部分字符串,在这种情况下
Not
操作符只查找不匹配的字符串

strFileName = Dir("C:\test\*")
Do While strFileName <> ""
  If Not lcase$(strFileName) Like "*.xls" Then 'or .txt or .csv or whatever
     Kill "C:\test\" & strFileName
  End If
  strFileName = Dir
Loop
strFileName=Dir(“C:\test\*”)
当strFileName“”时执行此操作
如果不是像“*.xls”这样的lcase$(strFileName),那么是“*.xls”或“.txt”或“.csv”之类的
终止“C:\test\”和strFileName
如果结束
strFileName=Dir
环

注意,如果您希望忽略所有Excel文件,则考虑备选扩展,并用和显式地解释它们:

如果不是像“*.xls”这样的lcase$(strFileName),也不是像“*.xlsx”这样的lcase$(strFileName),那么


记住.txt、.csv、.xlsm等。

应根据需要使用以下命令。注意:最好使用
Like
操作符来比较部分字符串,在这种情况下
Not
操作符只查找不匹配的字符串

strFileName = Dir("C:\test\*")
Do While strFileName <> ""
  If Not lcase$(strFileName) Like "*.xls" Then 'or .txt or .csv or whatever
     Kill "C:\test\" & strFileName
  End If
  strFileName = Dir
Loop
strFileName=Dir(“C:\test\*”)
当strFileName“”时执行此操作
如果不是像“*.xls”这样的lcase$(strFileName),那么是“*.xls”或“.txt”或“.csv”之类的
终止“C:\test\”和strFileName
如果结束
strFileName=Dir
环

注意,如果您希望忽略所有Excel文件,则考虑备选扩展,并用和显式地解释它们:

如果不是像“*.xls”这样的lcase$(strFileName),也不是像“*.xlsx”这样的lcase$(strFileName),那么


记住.txt、.csv、.xlsm等。

检查文件是否存在于给定位置。它就在那里。我保证了。我意识到这有点编辑性,但我建议不要使用不能准确表示存储在其中的数据的变量名:特别是,名为
folderPath
的变量可能不应用于存储文件名。请改用FSO对象来标识文件并从删除操作中排除文件。@PareshJ可以给我举个例子。检查文件是否存在于给定位置。它就在那里。我保证了。我意识到这有点编辑性,但我建议不要使用不能准确表示存储在其中的数据的变量名:特别是,名为
folderPath
的变量可能不应用于存储文件名。请改用FSO对象来标识文件并从删除操作中排除这些文件。@PareshJ可以给我举个例子。可能还应
lcase$(strFileName)like…
可能还应
lcase$(strFileName)like…