Я провел немного больше исследований и обнаружил ограничение поиска / замены в Word (я использую Office 365, Word 2016).
В предыдущем ответе не учитывался тот факт, что вы также перемещаете внутриДата.
Когда я построил запрос на поиск, в котором дата также транспонировалась по мере необходимости, я получил
"([) (*) (,) (@) (*) (/) (*) (/) (*) (]) "
, но это не сработает, сообщая ту же ошибку, о которой вы сообщили.После небольшого исследования выясняется, что это связано с ограничением числа полей поиска в 9.
Учитывая текст 123456789A, тогда ищем
"(1) (2) (3) (4) (5) (6) (7) (8) (9)"
отлично работает, но
"(1) (2) (3) (4) (5) (6) (7) (8) (9) (A)"
выходит из строя.
В вашем конкретном случае мы можем уменьшить количество полей поиска до 9, изменив (,) на просто, задав запрос на поиск
"([) (*), (@)(*) (/) (*) (/) (*) (]) "
Это означает, что теперь вы можете перестроить дату с помощью инструкции замены
" \ 6 //\ 4 // \ 8, \ 1 - "
Если вы не смогли упростить свой поиск до 9 полей поиска или меньше, вам потребуется выполнить несколько поисков.В вашем случае первым будет транспонировать время и дату, используя поиск / замену, представленную в предыдущем ответе, а вторым - транспонировать в пределах даты.
В качестве отступления, если вы не можете гарантировать, что естьвсегда один или несколько пробелов после запятой, вы должны выполнить начальный поиск / замену, чтобы добавить пробел после запятой.Это связано с тем, что нет поля поиска, которое работает с 0 или более символами, и предлагаемый запрос поиска будет работать с одним или несколькими пробелами, но не при отсутствии пробелов.
Вы заметите, что в моем запросе поиска яне искать цифры, только разделители.Это означает, что функция «Найти / заменить» будет одинаково хорошо работать с датами, которые имеют названия месяцев, а не номера месяцев, например, 21 / сентябрь / 2017 г.замените и вместо этого используйте методы range while / moveuntil, поскольку у вас есть четко определенное поле, ограниченное [и].Затем можно использовать функцию разделения VBA для создания двух массивов из текста диапазона.Первый разделил бы строку на время и дату, разделив на ',', а второй разделил бы, чтобы получить дату на день, месяц, год, разделив на '/'