Я данных в Excel нравится следующим образом (одна строка здесь - одна ячейка в Excel):Заменить текст с помощью регулярных выражений в Excel-VBA
07 July 2015 12:02 – 14 July 2015 17:02
12 August 2015 22:02 – 01 September 2015 11:02
Я хочу написать макрос, который будет удалять все данные времени (например, "12:02") в выборе пользователя (несколько ячеек), чтобы выглядеть следующим образом:
07 July 2015 – 14 July 2015
12 August 2015 – 01 September 2015
Когда все "времена", где аналогично ("00:00") этот макрос работал отлично:
Но тогда информация о времени перестала быть единой, поэтому я решил использовать RegEx. Проблема в том, что я не могу найти правильный способ сделать это на VBA. Я пробовал этот макрос:
Sub delete_time()
Dim RegEx As Object
Set RegEx = CreateObject("VBScript.RegExp")
On Error Resume Next
RegEx.Global = True
RegEx.Pattern = "\d\d\:\d\d"
ActiveDocument.Range = _
RegEx.Replace(ActiveDocument.Range, "")
End Sub
Но это не сработало. Также попытались «[0-9] {2}: [0-9] {2}" и "[0-9] [0-9]: [0-9] [0-9]" шаблоны, но ничего не изменилось. Так что проблема должна быть в моем непонимании VBA (я новичок в этом).
Может ли кто-нибудь помочь?
Ваше регулярное выражение действительно оставляет некоторые пробелы. – vacip
Спасибо, это решение работает отлично. Вы также правы насчет лишних пробелов, я исправил это. – akarilimano