Я относительно новичок в коде VBA в Excel, поэтому, пожалуйста, прости меня, если ответ прост (я ожидаю, что это обычно так). Я использую Excel 2010, для справки. Я пытаюсь сделать следующее с помощью следующего сценария:
Если числовая строка (любое значение) введена в какую-либо ячейку в столбце D, мне нужно автоматически преобразовать ее в гиперссылку, которая добавит определенную строку адреса перед значением целевой ячейки и выдаст понятное имя, включающее в себя ячейку. значение.
Другими словами, вот пример функции Excel, которую я пытаюсь воспроизвести с помощью макроса:
=HYPERLINK("http://stprs553/tickets/list/single_ticket/293136","Ticket #293136")
Или, более конкретно (следует нарисовать более четкую картину):
=HYPERLINK(CONCATENATE("http://stprs553/tickets/list/single_ticket/","Target_Cell_Data"),"Ticket #Target_Cell_Data")
293136 - это пример строки чисел, которую я хочу, чтобы пользователь мог вводить в любую ячейку в столбце D. Когда они это сделают, я хочу преобразовать эту ячейку в гиперссылку, используя строку чисел в качестве базовых данных, добавив оставшуюся часть URL слева от значения ячейки, затем создайте понятное имя, которое объединяет «Ticket #» со строкой числа из значения ячейки. Я не хочу, чтобы мои пользователи изучали формулы Excel, чтобы иметь ссылочную ссылку, или тратили время на копирование обоих концов функции, чтобы обернуть данные ячейки.
Вот что я имею в VBA:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rangeLimit As Range
Set rangeLimit = Range("D:D")
If Not Intersect(rangeLimit, Target) Is Nothing Then
If Target <> "" Then
Target.Hyperlinks.Add Anchor:=Target, Address:="http://stprs533/tickets/list/single_ticket/" & c.Value, TextToDisplay:="Ticket #" & c.Value, Target.Value
End If
End If
End Sub
Вот проблемы, с которыми я сталкиваюсь:
1.) Если я пытаюсь запустить формулу как есть, я получаю ошибку компиляции.
2.) Если я удалю , Target.Value
конца строки гиперссылки, я получаю ошибку 424, "Требуется объект" ошибка.
Что я делаю не так, и / или как я могу создать макрос для выполнения желаемой функции? Хороший час поисков в Google и просмотр постов StackOverflow привели меня к тому, что у меня сейчас есть, что до сих пор не работает.