找到最后一个空单元格并使用函数完成它

时间:2016-05-12 09:03:18

标签: excel vba excel-vba

我做了一个程序来列出excel表中'fld'文件夹中文件的路径,但我不知道如何每次搜索最后一行并使用列出文件的功能完成它。 然后添加新文件并保持较旧。 这是vba:

C:\Users\fld\file1  
C:\Users\fld\file2  
C:\Users\fld\file3  

excel表是:

x(d.service)

此程序每次都重复自己,并重写excel表上的路径。否则,我想只搜索最后一行并写入刚刚添加的路径文件夹。

例如,如果我添加C:\ Users \ fld \ file4,它将自动添加到单元格的末尾。

1 个答案:

答案 0 :(得分:1)

无需循环即可快速完成此操作:

Sub ListFiles()

Dim files As Variant

files = Filter(Split(CreateObject("WScript.Shell").Exec("CMD /C DIR ""C:\Users\fld\*.*"" /S /B /A:-D").StdOut.ReadAll, vbCrLf), vbCrLf), ".")

Range("A2").Resize(UBound(files) + 1).Value = WorksheetFunction.Transpose(files)

End Sub

您可能会看到一个命令提示符(黑匣子)显示几秒钟,这是正常的。它使用CMD.exe中的DIR命令从所有子文件夹获取文件列表,将输出解析为数组,然后将数组直接转换到工作表中。