Макрос Excel для поиска текста в ячейке и вставки гиперссылки в ячейку - PullRequest
2 голосов
/ 20 мая 2010

Мы управляем некоторыми системными ошибками в веб-системе и устанавливаем приоритет для execs в электронной таблице. Каждый из билетов имеет «FD-» и четыре номера в качестве идентификатора. Веб-система имеет гиперссылку с этим «FD - ####» в конце ссылки. Конечный результат будет выглядеть так - http://www.mytickets.com/FD-####

Я хотел бы запустить макрос, который находит все FD - #### и вставляет гиперссылку на каждый.

Может быть несколько FD - #### в одной ячейке, и там обязательно будет другой текст.

Я бы просмотрел каждый из них и добавил бы ссылку, но их было более 150 или около того.

Спасибо!

1 Ответ

2 голосов
/ 20 мая 2010

Как уже упоминалось в комментарии, Excel, похоже, не поддерживает несколько гиперссылок в ячейке.

Приведенный ниже код выполнит замену билета на ссылку:

Option Explicit

Sub loop_over_cells()
    Dim a_cell
    Dim replaced As String

    For Each a_cell In ActiveSheet.UsedRange
        Debug.Print "old value " & a_cell.Value
        replaced = RegexReplace(a_cell.Value, "(fd-\d{4}\b)", "=hyperlink(" & Chr(34) & "http://cnn.com/$1" & Chr(34) & ")")
        a_cell.Value = replaced
        Debug.Print "new value " & a_cell.Value
    Next
End Sub

Function RegexReplace(search_string, ptrn, rplc)
  Dim regEx

  Set regEx = CreateObject("VBScript.RegExp")
  regEx.Pattern = ptrn
  regEx.IgnoreCase = True
  regEx.Global = True

  RegexReplace = regEx.replace(search_string, rplc)
End Function
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...