【发布时间】:2019-06-13 23:28:21
【问题描述】:
我在一个文件夹中有很多文件,其名称如下:
“prof102122013@10.18.41.csv”
“02122013”位是日期 - 2013 年 2 月 12 日。其中一些是在同一天制作的。我想创建一个文件,其中包含在同一天制作的所有工作簿并将它们全部放在一个大文件中。到目前为止,我正在努力获得打开特定日期文件的选择性。有谁知道什么样的代码可以帮助我解决这个问题?
编辑:已解决,谢谢大家的帮助!这是对我有用的代码:
folder_location = Application.ActiveWorkbook.Path
i2 = 0
strFile = Dir(folder_location & "\")
'looping through to find the right file names and putting them all in an array
While strFile <> ""
If Right(strFile, 3) = "csv" Then
file_to_analyse = Split(strFile, "@")
If Right(file_to_analyse(0), 8) = date_we_want_to_analyse_on Then
found_files_to_analyse(i2) = strFile
i2 = i2 + 1
End If
End If
strFile = Dir
Wend
【问题讨论】:
-
尝试
FileSystemObject读写文件。您也可以使用FSO搜索文件和文件夹。你有没有尝试过? -
你能提供一个示例文件名列表吗?我认为您可以使用@PankajJaju 所说的
FileSystemObject获得所需的内容,并将其与RegExp库相结合以查找每个文件名的日期(您会在问题下方找到一个“编辑”链接,这将允许您添加示例)。 -
干杯,伙计们!我使用了
Application.ActiveWorkbook.Path并用于查找文件夹,然后使用以下 Peekay 答案的变体:While strFile <> "" If Right(strFile, 3) = "csv" Then file_to_analyse = Split(strFile, "@") If Right(file_to_analyse(0), 8) = date_we_want_to_analyse_on Then found_files_to_analyse(i2) = strFile i2 = i2 + 1 End If End If strFile = Dir Wend感谢您的帮助,我很感激! (编辑:我将在我的问题部分中编写代码,因为我无法在这些 cmets 中将其格式化为漂亮的块)