Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Удаление гиперссылок / 2 сообщений из 2, страница 1 из 1
06.11.2007, 08:47:06
    #34917632
brzl
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление гиперссылок
Здравствуйте, все!
Недавно пришлось столкнуться с макросами в Excel.

Есть файл Программа.xls - в нем данные для работы с прайс-листом. Данные поставщиков, несколько десятков макросов для обработки прайс-листа и кнопочки для запуска макросов.

Проблема далее:
Иногда все ячейки файла становятся гиперссылками например: mailto:vasya@vasya.com (обычно это какой -либо мейл поставщика, который присутствует в файле Программа) Макросов которые бы могли бы повлиять на сам файл Программа нет, т.е. все макросы нацелены на работыу с файлом прайс-листа. Причину появления гиперссылок установить неудается.

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

Код: plaintext
1.
2.
3.
4.
 Dim xlHyperlink As Hyperlink
 For Each xlHyperlink In ActiveSheet.Hyperlinks
      xlHyperlink.Delete
 Next

Но данный скрипт вместе с гиперссылкой удаляет и форматирование ячейки.
Они в файле раскрашены в определенные цвета, некоторые значения выделены курсивом, жирным и т.д.
1) Если кто-нибудь сталкивался с таким глюком(появление гиперссылок), хотя это маловероятно, подскажите как бороться.
2) Если не было подобных случаев, то: Можете подсказать как оставлять форматирование. но удалять гиперссылки.
Oracle 8.1.6, Delphi 7
...
Рейтинг: 0 / 0
07.11.2007, 19:00:04
    #34923326
vbapro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление гиперссылок
Сохранить формат можно так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
Sub RemoveHyperLinkPreserveFormat()
Dim xlHyperlink As Hyperlink
Dim TempRng As Range
Dim HLRng As Range
Dim TSh As Worksheet

    Set TSh = ActiveSheet
    Set TempRng = ActiveWorkbook.Worksheets.Add.Range("A1")
    
    TSh.Activate
    
    For Each xlHyperlink In ActiveSheet.Hyperlinks
        Set HLRng = xlHyperlink.Range
        HLRng.Copy
        TempRng.PasteSpecial Paste:=xlPasteFormats
        TempRng.Font.Underline = xlUnderlineStyleNone
        
        xlHyperlink.Delete
        
        TempRng.Copy
        HLRng.PasteSpecial Paste:=xlPasteFormats
        Application.CutCopyMode = False
    Next
    Selection.Font.Underline = xlUnderlineStyleNone
    
    Set TSh = Nothing
    Set HLRng = Nothing
    
    Application.DisplayAlerts = False
    TempRng.Parent.Delete
    Application.DisplayAlerts = True
End Sub
Но, наверняка, можно сделать так, чтоб ссылки не появлялись - нужно посмотреть как данные попадают на лист
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Удаление гиперссылок / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]