如何删除多个空白.csv文件?

时间:2019-05-08 08:28:11

标签: excel vba

我在excel 2010中有一些VBA代码,可将多个.csv文件导入到一个excel工作簿中,但是,有时会存在一个流氓文件,其中不包含任何内容,并且文件大小为零,这会引发错误,因此我必须手动转到该文件夹​​并将其删除,然后再次运行我的宏。 因此,我在寻求一些帮助之后,将允许我检查文件夹中包含的所有.csv文件的文件大小,并删除任何零值,然后再导入它们。有办法吗?或者可能是另一种建议的方法会有所帮助? 我对VBA还是很陌生,所以如果我不能立即完全理解,请耐心等待。

我调查了FileLen(C:\ Test \ test.csv)= 0然后杀死所说的文件。 但这仅会专门删除提到的文件。我宁愿检查所有文件大小,如果任何大小为零,请杀死它们。

3 个答案:

答案 0 :(得分:1)

您可以使用Stream来检查文件夹中的文件,如果文件的类型正确且大小= 0,则将其删除。

请务必谨慎运行,因为删除操作将是永久性的(不可恢复)。

FileSystemObject

答案 1 :(得分:0)

您可以使用DIR命令搜索文件夹中的所有文件,然后杀死文件大小为0的任何文件。 下面的代码搜索指定的文件夹,并在名为Main的工作表中列出* .xls文件名。 应该很容易进行调整,并结合您自己的Kill命令。

Sub Directory()
    Dim strPath As String
    Dim strFolderPath As String
    Dim strFileName As String
    Dim intRow As Integer
    Dim intColumn As Integer
    Dim intNumber As Integer

    intRow = 1
    intColumn = 1
    intNumber = 0

    strFolderPath = "h:\excel\*.xls" 'search through H drive excel folder
    strFileName = Dir(strFolderPath) 'Get name of first file
    Do
        Sheets("Main").Cells(intRow, intColumn) = strFileName 'write filename
        strFileName = Dir  'get next filename
        intRow = intRow + 1
    Loop Until strFileName = ""

End Sub

答案 2 :(得分:0)

感谢您的迅速答复,我最终设法使我的循环摇摇欲坠,安迪的样本。 在罗恩做出回应之前,我已经开始尝试他的想法了,所以继续进行下去。 但是,我确实喜欢先询问用户是否要删除该文件的想法,因此我想我也会对Ron的建议有所了解,并且可能会从中学习一些东西。 再次感谢。