2013-05-08 23:44:33 +0000 2013-05-08 23:44:33 +0000
49
49
Advertisement

Могу ли я использовать формулу excel для извлечения местоположения гиперссылки в ячейке?

Advertisement

У меня есть электронная таблица с большим количеством ячеек, содержащая гиперссылки с текстом на дисплее, отличным от расположения гиперссылки

, т.е.:

ячейки: A1

отображение текста = “Информация о сайте”

расположение гиперссылки = http://www.mylocation.com

Есть ли формула excel, которая позволяет мне получить доступ к текстовой строке местоположения гиперссылки?

В идеале она должна выглядеть так:

FORMULA(A1) = http://www.mylocation.com

Advertisement

Ответы (3)

55
55
55
2013-05-09 00:20:34 +0000

Можно использовать макрос:

  • Откройте новую рабочую книгу.
  • Войти в VBA (Нажмите Alt+F11)
  • Вставить новый модуль (Вставить > Модуль)
  • Скопировать и вставить пользовательскую функцию Excel ниже
  • Выйти из VBA (Нажмите Alt+Q)
  • Использовать этот синтаксис для этой пользовательской функции Excel: =GetURL(ячейка,[default_value]).
22
22
22
2015-05-01 09:34:26 +0000

Мне нужно было только извлечь адрес из значения одной ячейки, поэтому я нашел эту маленькую функцию удобной:

Вместо макроса “грубой силы”, вы можете также создать пользовательскую функцию, которая будет извлекать и возвращать URL для любой гиперссылки, на которую она была указана:

Function GetURL(rng As Range) As String
     On Error Resume Next
     GetURL = rng.Hyperlinks(1).Address 
End Function

В этом случае вы можете поместить ее туда, куда хотите. Если вы хотите, например, чтобы URL гиперссылки в A1 был указан в ячейке C25, то в ячейке C25 вы должны ввести следующую формулу:

=GetURL(A1) _COPY3_Extracting_URLs_Hyperlinks.html

2
Advertisement
2
2
2017-01-30 09:54:57 +0000
function EXTRACT_URL(input) {

  var range = SpreadsheetApp.getActiveSheet().getRange(input);
  var re = /^.+?\(\"(.+?)\",.+?$/;
  if (input.indexOf(':') != -1) {
    var formulas = range.getFormulas();
    for (var i in formulas) {
      for (var j in formulas[i]) {
        formulas[i][j] = formulas[i][j].replace(re, "$1");
      }
    }
    return formulas;
  } else {
    return range.getFormula().replace(re, "$1");
  }

}

Похожие вопросы

6
13
9
10
6
Advertisement