0
有人可以告诉我,如果用户可以在输入框中输入两个单独的日期,然后在文件夹中搜索具有(理想情况下)创建落入输入日期之间的日期的文件?如何在两个日期之间搜索文件?
我可以通过文件夹中的文件进行搜索,但文件数量每天都在增加,并且运行搜索所需的时间越来越长。我希望如果用户可以选择日期范围,那么这将减少运行时间。
如果这是不可能的,可以设置一个宏来搜索文件夹中的文件从最近创建的文件开始搜索,然后从那里开始工作?
Sub UKSearch()
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'Search function to find specific consignment number from multiple intake sheets'
'Used by Traffic Office '
'Created by *********** 11/03/14 Password to unlock = ********* '
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Dim FSO As Object 'FileSystemObject
Set FSO = CreateObject("scripting.filesystemobject")
Dim Directory As String
Dim FileName As String
Dim varCellvalue As Long
Application.ScreenUpdating = False
MsgBox ("This may take a few minutes")
'value to be searched
varCellvalue = Range("D13").Value
'Change the directory below as needed
Directory = "\\*******\shared$\Common\Returns\*********\"
If Right(Directory, 1) <> "\" Then
Directory = Directory & "\"
End If
'Search for all files in the directory with an xls* file type.
FileName = Dir(Directory & "*.xls*")
''''''''''''''''''''''''
'Opens, searches through and closes each file
Do While FileName <> ""
OpenFile = Directory & FileName
Workbooks.Open (OpenFile)
Workbooks(FileName).Activate
'Count through all the rows looking for the required number
ActiveWorkbook.Sheets("UK Scan Sheet").Activate
LastRow = Range("B65536").End(xlUp).Row
intRowCount = LastRow
Range("B1").Select
For i = 1 To intRowCount
'If the required number is found then select it and stop the search
If ActiveCell.Value = varCellvalue Then
GoTo Finish
Else
End If
ActiveCell.Offset(1, 0).Select
Next i
Workbooks(FileName).Close
FileName = Dir
OpenFile = ""
Loop
''''''''''''''''''''''''''
Finish:
Application.ScreenUpdating = False
End Sub
我不确定你的目标是什么,但如果你想获得日期过滤的文件名集合,你可能会从[本视频]中获得一些灵感(http://www.teachexcel.com/excel -tutorials/N-1566,VBA的提示---列表档案-IN-A-Folder.html)? –
你可以看看如何确定创建日期这个答案:http://stackoverflow.com/questions/18660818/excel-vba-pdf-file-properties/18661886#18661886。尝试将它合并到您的代码中,如果您遇到困难,请回复并且我们会为您提供帮助 –
我会尽量做得更清楚: - 我想要做的是 - 用户按下命令按钮 - 输入框日期(YYYY-MM-DD) - 第二日期的输入框(YYYY-MM-DD) - 搜索值的输入框 - 宏在两个输入日期之间的文件夹中查找第一个文件 - 宏搜索该文件中的搜索值 - 如果未找到,则移动到下一个文件,直到到达两个输入日期之间的最后一个文件。 我希望能让我更清楚自己想做什么? – LuckySevens