Я пытаюсь проверить, содержат ли значения в столбце, например A, ссылку, и если true, в столбце B, я хочу набрать текст, например: link. У меня много записей (10 000), поэтому делать это вручную займет много времени. Спасибо.
- Сохраните файл как.xlsm, чтобы разрешить макросы
- Alt + F11 для открытия Visual Basic
- Вставить → Модуль
- Вставьте эту функцию, она вернет количество гиперссылок в диапазоне:
Function IsHyperlink(r As Range) As Integer IsHyperlink = r.Hyperlinks.Count End Function
-
Alt + Q
-
Используйте свою новую функцию с условиями if, чтобы отобразить текст:
=IF(IsHyperlink(A1),"LINK","NO LINK")
Вот:
Sub Links()
Dim lnk As Hyperlink, lnks As Hyperlinks
Set lnks = Range("A:A").Hyperlinks
For i = 1 To lnks.Count
Set lnk = lnks(i)
lnk.Range.Value = "Link"
Next
End Sub
Вам нужно больше узнать о VBA, если вы хотите использовать описанную выше процедуру. Пожалуйста, всегда делитесь своими исследованиями сначала и, по крайней мере, с заглушкой кода. Это было просто, поэтому исключение.
Существует формула, которая может работать, но она основана на длине символов в ячейке. Например, гиперссылка обычно содержит больше символов из-за имени пути. Если количество символов в ваших ячейках всегда меньше 30, например, вы можете написать формулу
=If(Len(Cell("Filename",A1))>30,"True","False")
Формула вернет “True”, если ячейка является гиперссылкой. Эта формула предполагает, что файл Excel хранится во вложенной папке, где указано имя каждой папки, которое добавляет длину гиперссылки.
Мне удалось найти формулу, а не VBA.
Я использовал =IF(HYPERLINK(A1>0), "WEB", "")
Спасибо всем за ваше время. 🙂