Я не верю, что это возможно без макроса.
Гиперссылка в ячейке Excel не имеет ничего общего со значением ячейки. Это отдельный объект, который связан с ячейкой. Полнофункциональный способ добавить гиперссылку в ячейку - через пункт меню Excel Вставить -> Гиперссылка.
Тот факт, что гиперссылка добавляется, когда пользователь вводит значение, такое как «http: // ...», «https: // ...» или «ftp: // ...», является просто Ярлык GUI, который имеет тот же эффект, что и Insert -> Hyperlink. В вашем примере, когда пользователь «дотрагивается» до ячейки, он фактически вводит в ячейку значение «http: // ...» и вызывается ярлык GUI для «Вставка -> Гиперссылка». Однако ярлык НЕ вызывается, когда значения вводятся в ячейки программно, либо через VBA, либо через встроенные функции Excel (например, «Данные» -> «Импорт внешних данных»).
По этой причине действительно трудно заставить эти произвольные импорты данных отображать соответствующие значения в виде гиперссылок без какой-либо формы макроса. Если вы можете убедить своих пользователей установить простую надстройку Excel, вы можете предоставить пункт меню, который запускает следующий простой код: -
Dim cell as Range : For Each cell in Selection.Cells // could also use Range("A1").CurrentRegion.Cells or similar
If Left(cell.Value, 7) = "http://" Or Left(cell.Value, 8) = "https://" Or Left(cell.Value, 6) = "ftp://" Then
Call cell.HyperLinks.Add(cell, cell.Value)
End If
Next cell
Пользователь может вызвать это после импорта / обновления данных. Очевидно, что он далек от идеала, поскольку полагается, что пользователь сделает дополнительный шаг для визуализации гиперссылок.