我有几个文本文件(.txt)都被称为" Log"接着是这样的日期(11-2014)和随机数,如" 34450"
所以我的文件夹目录(P :)看起来像:
Log (11-2014) 12234.txt
Log (10-2014) 45546.txt
Log (08-2014) 686868.txt
Log (11-2014) 343434.txt
我想要做的是使用vba代码来计算日志文件包含今天日期的相同月份和年份的所有事件。
所以今天是11月,今天是2014年
所以我想计算所有日志文件,其中文件名的日期位为"(11-2014)"匹配当前日期/今天的日期和月份。
这是我尝试过的但它没有工作,我一直在找到"发现"即使文件不存在,请有人告诉我我做错了什么?
Dim iMonth As Integer
Dim iYear As Integer
Dim target As String
iMonth = Month(Date)
iYear = Year(Date)
thefile = "P:\Log *(" & iMonth & "-" & iYear & ")"
If thefile > 0 Then
MsgBox "Found"
Else
MsgBox "Not"
End If
答案 0 :(得分:0)
您可以使用Left或InStr函数来查找子字符串是否是另一个字符串的一部分
dim logName as string, logNameToFind as string
if Left(logName, Len(logNameTofind)) = LogNameToFind then
MsgBox "Found"
end if
或
dim logName as string, logNameToFind as string
if InStr(logName, logNameToFind) = 1 then
MsgBox "Found"
End if
其中 logName 是在磁盘上找到的文件名, logNameToFind 是您要查找的模式。
要从目录中获取所有文件,请使用Dir函数
答案 1 :(得分:0)
您可以使用以下函数使用与您的模式匹配的所有文件填充数组,然后使用
UBound(myArray)
来计算。
Private Function GetFileList(FileSpec As String) As Variant
' Returns an array of filenames that match FileSpec
' If no matching files are found, it returns False
Dim FileArray() As Variant
Dim FileCount As Integer
Dim FileName As String
On Error GoTo NoFilesFound
FileCount = 0
FileName = Dir(FileSpec)
If FileName = "" Then GoTo NoFilesFound
'Loop until no more matching files are found
Do While FileName <> ""
FileCount = FileCount + 1
ReDim Preserve FileArray(1 To FileCount)
FileArray(FileCount) = FileName
FileName = Dir()
Loop
GetFileList = FileArray
Exit Function
NoFilesFound:
GetFileList = False
End Function