Excel 2016 гиперссылка на веб-страницу создает ошибку неправильного типа данных - PullRequest
0 голосов
/ 02 ноября 2018

У меня есть формула в Excel, которая создает URL.

https://dev.virtualearth.net/REST/V1/Imagery/Map/Road/33.344098%2C-86.92109/8?mapSize=1500,1500&mapLayer=TrafficFlow&format=png&pushpin=33.344098,-86.92109;64;2&pushpin=33.3326334378716,-86.7889690445497;64;3&pushpin=33.32602,-87.03541;64;4&pushpin=33.69447,-85.85043;64;5&pushpin=33.344098,-86.92109;64;6&pushpin=35.15039,-89.94733;64;7&pushpin=35.096314,-89.804006;64;8&pushpin=35.0512,-89.93951;64;9&pushpin=35.15098,-90.1767;64;10&key=xxxxx

Если я копирую / вставляю результат формулы в браузер, все работает нормально.

Если я пытаюсь создать гиперссылку в Excel

HYPERLINK(C23,"Dots on a Map")

Я получаю сообщение об ошибке с неверным типом данных.

Что необходимо изменить, чтобы использовать ячейку C23 в качестве гиперссылки?

1 Ответ

0 голосов
/ 02 ноября 2018

Причина в том, что ваша URL-ссылка имеет более 255 символов, которые функция = Hyperlink () не разрешает.

Если вы разделите ссылку и объедините эти отдельные части (менее 255 символов), вы сможете преодолеть это ограничение.

С помощью макроса вы можете заставить эту ссылку снова кликать. Я взял один, который нашел Брэд Юндт для демонстрационных целей, и изменил его.

Option Explicit

Sub HyperlinkMaker()
'Code assumes column A and B values will be concatenated and used to make a hyperlink
'The hyperlink will be put in column C
Dim i As Long, firstRow As Long, lastRow As Long
Dim sFriendly As String, sHyperlink As String
firstRow = 1        'Put first hyperlink on this row
With ActiveSheet
    lastRow = .Cells(.Rows.Count, "A").End(xlUp).Row     'Look at last cell in column A with data
    For i = firstRow To lastRow
        sHyperlink = .Cells(i, "B").Value & .Cells(i, "B").Value & .Cells(i, "B").Value    'Build the hyperlink
        sFriendly = .Cells(i, "A").Value 'Display the "Friendly" value instead of full hyperlink
        If sHyperlink <> "" Then .Hyperlinks.Add anchor:=.Cells(5, 1), Address:=sHyperlink, TextToDisplay:=sFriendly 'Output is set to cell(1,5), i.e A5
    Next
End With
End Sub

В моем примере я разделил вашу ссылку на 3 ячейки (B1, B2 & B3) и получил имя в A1. Выходной результат будет в A5.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...