Автоматически открывать гиперссылку в выбранной строке - PullRequest
0 голосов
/ 31 августа 2018

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

Однако, поскольку у меня есть более 10000 файлов для тегов и обработки (я знаю, это абсурдно), я хотел немного улучшить процесс, заставив электронную таблицу автоматически «щелкнуть» гиперссылку, как только я перейду к следующий ряд.

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

Я довольно новичок в Excel, но этот проект, по сути, дает мне возможность учиться и расти в моих знаниях.

Бонусный вопрос: есть ли лучший способ сделать фильтр по типу, чем различные учебники, такие как этот: https://www.youtube.com/watch?v=tCahRfEGj1g?

Этот метод, к сожалению, неэффективен для больших списков, поэтому я надеюсь, что есть лучший способ сделать это. Спасибо!

1 Ответ

0 голосов
/ 31 августа 2018

Только из-за того, что Battlefield 4 потрясающая, я попробую:

Попробуйте поиграть с событием Worksheet_SelectionChange.

В вашем случае это будет выглядеть примерно так:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Cells(1, 2).Value = Target.Row
    If Cells(1, 2) <> Cells(1, 3) Then
        Cells(Target.Row, 1).Hyperlinks(1).Follow
        Cells(1, 3).Value = Target.Row
    End If
End Sub

Может .Follow не сработать, чем возможно:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Cells(1, 2).Value = Target.Row
    If Cells(1, 2) <> Cells(1, 3) Then
        Activeworkbook.FollowHyperlink address:=Cells(Target.Row, 1).Text
        Cells(1, 3).Value = Target.Row
    End If
End Sub

Он проверит, есть ли изменения в строке. Возитесь с клетками вне поля зрения.

Удачи в вашем проекте.

...