VBA Excel — Открытие ссылки после проверки поиска

#vba #hyperlink #lookup #offset

Вопрос:

У меня есть немного кода, который выглядит так :

 Private Sub Worksheet_Change(ByVal Target As Range)

   Dim searchFolder As String, fileName As String

   Static PowerPointApp As Object

     If Target.Column = 3 Then

       If Target.CountLarge > 1 Then Exit Sub

       If Target.Value = "" Then Exit Sub

With Application
Msg = .IfError(.VLookup(Target.Text, Worksheets("Test").Columns("A:B"), 2, 0), "")

If Msg <> "" Then MsgBox Target.Value amp; vbLf amp; vbLf amp; Msg, vbInformation, "Suggestion d'inspection"

End With
End If
End Sub
 

Что он делает, так это проверяет содержимое ячейки из столбца A на листе 1 по списку из листа 2, столбец 1 ; если есть совпадение, то Msgbox выдаст информацию из значения смещения результирующей ячейки из столбца 2.

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

В качестве примера : я помещаю «Информацию X» в Лист 1: 1 ; он проверяет, соответствует ли Лист 2, и есть ли совпадение (т. Е. в A45) откроется ссылка из B45.

Как я мог бы адаптировать свой код в соответствии с этими требованиями ?

РЕДАКТИРОВАТЬ : Я относительный новичок в VBA, мне может понадобиться время, чтобы понять некоторые концепции ^^’

Ответ №1:

Сначала проверьте, не равно ли возвращаемое значение из vlookup «». Если нет, то передайте это значение в первый аргумент ActiveWorkbook.FollowHyperlink .

Изменить: Удалите две строки о msg и замените их:

 hlink = .VLookup(Target.Text, Worksheets("Test").Columns("A:B"), 2, 0)

If hlink <> "" Then
    ActiveWorkbook.FollowHyperlink (hlink)
End If
 

Возможно, вам потребуется объявить hlink как строковую переменную.

Комментарии:

1. Как я только что отредактировал в своем первоначальном посте, я совсем новичок в VBA. Много проб и ошибок… Это означает, что, как бы то ни было, я не уверен, как перевести ваше предложение в код.

2. Большое спасибо, сейчас это работает как заклинание =) Все еще учусь, но я верю, что теперь я в этом разбираюсь…

3. Рад это слышать! Пожалуйста, подумайте о том, чтобы отметить это как правильный ответ.

4. Готово =) Я быстро поддержал ваш комментарий вчера вечером, но забыл чек ^^’