Поэтому, когда вы нажимаете гиперссылку в Excel, шрифт меняется с синего на фиолетовый,

Как Excel узнает, когда была нажата ссылка?

И во-вторых, как я могу сбросить его, чтобы он вернулся обратно в синий цвет (без сохранения и закрытия и т.д.)

Мои гиперссылки сделаны по формуле, как показано ниже:

=HYPERLINK("http://api.wunderground.com/api/eec4c24fa3e74d09/history_20171110/q/"&F675&"/"&C675&".json")

Это позволяет им быть динамическими, но после нажатия на них он остается фиолетовым, даже если я изменяю значения в F675 или C675

2 ответа2

1

Это "сбросит" каждую ячейку, содержащую гиперссылку (гиперссылка типа формулы):

Sub HyperResetter()
    Dim r As Range, f As String

    For Each r In Cells.SpecialCells(xlCellTypeFormulas)
        f = r.Formula
        If InStr(1, f, "=HYPERLINK") > 0 Then
            r.Clear
            r.Formula = f
        End If
    Next r
End Sub

Цвет текста будет фиксированным, но другое специальное форматирование также будет сброшено.

1

Исходя из комментария от @ pat2015

Я использовал VBA для сброса каждой гиперссылки:

Sub ResetHyper()

'   Select HyperLinks
    Range("H2").Select
    Range(Selection, Selection.End(xlDown)).Select

'   Clear Current HyperLink
    Selection.ClearContents

'   Rebuild HyperLink
    ActiveCell.FormulaR1C1 = _
        "=HYPERLINK(""http://api.wunderground.com/api/eec4c24fa3e74d09/history_20171110/q/""&RC[-2]&""/""&RC[-5]&"".json"")"

'   Select and Copy Down
    Range("H2").Select
    Selection.Copy
    Application.CutCopyMode = False
    Selection.AutoFill Destination:=Range("H2:H750")
    Range("H2:H750").Select

End Sub

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .