Ответ 1
Я не знаю другого способа, кроме макроса. Но похоже, что кто-то уже написал один, чтобы сделать это.
У меня есть таблица с тысячами строк. Каждая строка содержит гиперссылку с контуром.
Путь недействителен, однако легко можно зафиксировать, заменив первую часть его правильным значением.
Example: current hyperlink: F:\Help\index.html
Needed: P:\SystemHelp\index.html
Проблема заключается в том, что стандартный Find/Replace не "видит" содержимое гиперссылок.
Это единственный способ написать макрос или есть ли другой способ сделать это?
Я не знаю другого способа, кроме макроса. Но похоже, что кто-то уже написал один, чтобы сделать это.
Привет, cnx.org, способ изобретать функцию Replace.
Sub FindReplaceHLinks(sFind As String, sReplace As String, _
Optional lStart As Long = 1, Optional lCount As Long = -1)
Dim rCell As Range
Dim hl As Hyperlink
For Each rCell In ActiveSheet.UsedRange.Cells
If rCell.Hyperlinks.Count > 0 Then
For Each hl In rCell.Hyperlinks
hl.Address = Replace(hl.Address, sFind, sReplace, lStart, lCount, vbTextCompare)
Next hl
End If
Next rCell
End Sub
Sub Doit()
FindReplaceHLinks "F:\help\", "F:\SystemHelp\"
End Sub
Нет необходимости в макросе
Предупреждение: некоторые вещи, такие как графики и т.д., могут быть потеряны, однако формулы и форматы, похоже, сохраняются.
Сохраните документ как лист распространения XML
Откройте файл с помощью Блокнота
"Заменить все" из "неправильной текстовой строки" на "правильную текстовую строку"
Сохранить
Откройте файл с помощью Excel
Сохранить документ в оригинальном формате
Другой способ заключается в том, чтобы вставить символ, так что это весь текст, поиск и замена, а затем пройти и удалить символы.