2015-12-04 2 views
0

У меня есть несколько ячеек на листе, содержащих Введенные гиперссылки. Я хочу удалить гиперссылки и оставить «дружественное имя» в ячейке. Я могу сделать это с помощью:Удалить формат гиперссылок Сохраняющий формат ячейки

Sub dural() 
    Dim h As Hyperlink 

    For Each h In ActiveSheet.Hyperlinks 
     h.Delete 
    Next h 
End Sub 

Этот небольшой вспомогательный работает. Однако, если я начну с:

enter image description here

и запустить макрос, я получаю:

enter image description here

Формат ячейки был разрушен! Есть ли способ удалить гиперссылку и оставить форматирование в одиночку?

EDIT # 1:

изучение свойств гиперссылка, я получил эту работу:

Sub dural2() 
    Dim h As Hyperlink, addy As String, z As String 

    For Each h In ActiveSheet.Hyperlinks 
    addy = h.Range.Address 
    z = h.Parent 
    Range(addy).ClearContents 
    Range(addy).Value = z 
    Next h 
End Sub 
+1

http://stackoverflow.com/questions/15505162/removing-hyperlinks-retaining-formulas-and-format –

ответ

2

Объекта гиперссылка обладают определенными свойствами, которые, путем проб и ошибок, я установил, что для простого гиперссылка на другую ячейку на том же листе:

  • h.Address = ""
  • h.Range = "CNN" (на самом деле возвращает диапазон, а как свойство по умолчанию .Value он оценивает в "CNN")
  • h.SubAddress = "Лист1! C1"

Как .SubAddress содержит :

положение внутри документа, связанного с гиперссылкой

Я изменил свой код:

Sub dural() 
    Dim h As Hyperlink 

    For Each h In ActiveSheet.Hyperlinks 
     h.SubAddress = "" 
    Next h 
End Sub 

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

+0

Спасибо ............... все мои гиперссылки указывают на веб-сайты ........ после вашего мышления я получил свой ** EDIT # 1 **, чтобы работать ............... спасибо снова! –

+0

Для веб-сайтов h.address содержит URL-адрес и h.SubAddress = "". Я предполагаю, что для покрытия как адресов веб-адресов, так и адресов внутренних листов вы можете установить как h.Address = "", так и h.SubAddress = "". –

+0

Еще раз спасибо! ............................ –

Смежные вопросы