Я хотел бы создать макрос VBA, который заменяет все ячейки на листе текстовыми строками в формате времени (регулярное выражение):
(1[0-2]|[1-9]):[0-5][0-9]:[0-5][0-9] [AP]M
с адресом ячейки и именем листа.Я думаю, что вызов тоже будет похож:
Cells.Replace What:="1:23:45 AM",
Replacement:="=cell(""filename"")&cell(""Address"")", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:= _
False, ReplaceFormat:=False
Но я надеюсь, что смогу сделать аргумент "What:=
" обычным или хотя бы ограниченным форматом времени.
Как мне поступить?
Тестовые данные: Сохраните следующее в формате CSV:
00:00,04:27,00:36,04:31,00:00
00:00,00:00,04:18,01:07,10:06
00:00,00:00,00:00,00:00,00:00
В конце концов макросудалит все нулевые значения и заменит остальные времена статическим текстом, который является оценочной формулой =cell("filename")&"!"&cell("address")
Результат действия с вышеуказанным входным файлом (я буду сохранять листы как XLSX):
[ A ] [ B ] [ C ] [ D ] [ E ]
[1] 'Sheet1!$B$1 'Sheet1!$C$1 'Sheet1!$D$1
[2] 'Sheet1!$C$2 'Sheet1!$D$2 'Sheet1!$E$2
[3]
Для краткости я вычеркнул каталог и имя файла, которые возвращает функция =cell("filename")
, хотя вышесказанное мне действительно нужно.