Так что в основном я пишу все эти макросы VBA для массажа большого количества данных. До этого пользователь должен иметь возможность вводить дату и извлекать данные, которые они хотят массировать. Данные, которые нужно массировать, - это отчет Excel, который создается каждый день.Excel VBA: регулярное выражение VBA для проверки имени файла?
Формат файла является: «Year_Month_Day_ (RandomlyGeneratedNumbers) _ReportWorkSheet.xls»
В какой возможный путь я могу определить имя файла? Я уже сделал легкую часть ввода даты и ее форматирования. Кажется, что цифры сидят всего шесть цифр, но я чувствую, что это может измениться. Я думал, что, возможно, когда-нибудь заглянет в каталог, в котором я ищу файл xls, и использую регулярные выражения, чтобы точно соответствовать дате, которую я уже отформатировал, чтобы определить, какой файл xls мне нужен. Есть ли способ сделать это? Или другое решение?
Просто для справки это код, который я до сих пор:
Dim CurrentDateString As String
Dim MonthString As String
Dim DayString As String
Dim YearString As String
Dim FileNameString As String
Dim i As Integer
CurrentDateString = Worksheets("Sheet1").Range("B2:B2").Value
'Checks to see if the date is in the proper format
If Len(CurrentDateString) = 10 Then
i = InStr(1, CurrentDateString, "/")
MonthString = Mid(CurrentDateString, 1, (i - 1))
i = InStr(4, CurrentDateString, "/")
DayString = Mid(CurrentDateString, 4, (i - 4))
i = InStr(4, CurrentDateString, "/")
YearString = Mid(CurrentDateString, 7, i)
FileNameString = YearString & "_" & MonthString & "_" & DayString & "_" & "ThisIsWhereTheNumberWouldGo" & "ReportWorkSheet.xls"
Else
MsgBox "Current date must have two digits for month and year. Even if its a single digit. For example January 1st 2014 would be 01/01/2014 NOT 1/1/2014"
End If
Что именно вы хотите сделать ?? Это не совсем ясно. Я не думаю, что это то, что вам нужно для RegEx. Вы просто пытаетесь определить, является ли конкретное имя файла уже существует? –