Я новичок в VBA и хотел бы получить некоторую помощь в использовании RegEx, и я надеюсь, что как-то может просветить меня на том, что я делаю неправильно. В настоящее время я пытаюсь разделить дату на свою индивидуальную дату, месяц и год, а возможные разделители включают «,», «-» и «/».Разделение строки в VBA с использованием RegEx
Function formattedDate(inputDate As String) As String
Dim dateString As String
Dim dateStringArray() As String
Dim day As Integer
Dim month As String
Dim year As Integer
Dim assembledDate As String
Dim monthNum As Integer
Dim tempArray() As String
Dim pattern As String()
Dim RegEx As Object
dateString = inputDate
Set RegEx = CreateObject("VBScript.RegExp")
pattern = "(/)|(,)|(-)"
dateStringArray() = RegEx.Split(dateString, pattern)
' .... code continues
Это то, что я делаю сейчас. Однако во время функции RegEx.Split, похоже, что-то не так, поскольку, похоже, мои коды зависают и не обрабатываются дальше.
Чтобы просто подтвердить, я сделал что-то простое:
MsgBox("Hi")
pattern = "(/)|(,)|(-)"
dateStringArray() = RegEx.Split(dateString, pattern)
MsgBox("Bye")
«Привет» MsgBox высовывается, но «Bye» MsgBox никогда не получает выскочил, а коды дальше вниз, кажется, не получают excuted что привело к моему подозрению, что RegEx.Split заставляет его застревать.
Могу ли я проверить, действительно ли я использую RegEx.Split правильный путь? Согласно MSDN here, Split (String, String) также возвращает массив строк.
Спасибо!
Редактировать: Я пытаюсь не исследовать функцию CDate(), поскольку я стараюсь не зависеть от настроек языкового стандарта на компьютере пользователя.
вам действительно нужно использовать 'RegEx' для этого? Будет ли «CDate» не соответствовать счету? – paul
Во-первых, 'Split' не является методом Regex. Во-вторых, ссылка, которую вы связываете, - VB.Net, а не VBA. В SO на Regex в VBA есть много ответов, а также функция Split. –
@paul Я стараюсь не зависеть от настроек локали на компьютере из-за некоторых сложных причин. Но как CDate поможет разбить его? – lyk