2016-06-14 2 views
0

Я знаю, что вы можете сделатьКак открыть гиперссылка на основе выбора хрома в Excel

Sub Chrome() 

Dim chromePath As String 
chromePath = """C:\Program Files (x86)\Google\Chrome\Application\chrome.exe""" 
Shell (chromePath & " -url https://www.google.com") 
Shell (chromePath & " -url path") 
Shell (chromePath & " -url path") 
Shell (chromePath & " -url path") 
Shell (chromePath & " -url path") 

End Sub 

Но если я не знаю, гиперссылка или URL'¿s заранее я не могу корчиться их в коде , У меня есть ячейки с гиперссылками, я пытаюсь сделать выбор, чтобы выбрать количество ячеек X и открыть гиперссылки на разных вкладках в Chrome.

я пытался что-то глупое вдоль линий

Sub Open_HyperLinks() 

Dim chromePath As String 
chromePath = """C:\Program Files (x86)\Google\Chrome\Application\chrome.exe""" 
    Dim hl As Hyperlink 
    On Error Resume Next 
    For Each hl In Selection.Hyperlinks 
     Shell (chromePath & " -url hl") 
    Next hl 
End Sub 

, конечно, что не получилось ...

ответ

1

Вы должны использовать .Address свойство каждого Гиперссылки в Hyperlinks коллекции.

Sub Open_HyperLinks() 
    Dim chromePath As String, hl As Hyperlink 

    chromePath = Environ("PROGRAMFILES(X86)") & "\Google\Chrome\Application\chrome.exe" 
    'On Error Resume Next 
    For Each hl In Selection.Hyperlinks 
     Shell chromePath & " -url " & hl.Address 
    Next hl 
End Sub 

Я решил свой% ProgramFiles переменной (X86)% среды из нуля, но жёстко диск и путь должен работать так же хорошо.

+0

... Есть ли способ заставить время между открытием вкладок по какой-либо причине при открытии вкладок, которые они открывают в случайном порядке. .. Мне нужно, чтобы они открывались сверху вниз ... –

+0

Вы можете попробовать добавить параметр '-newtab' в командную строку (как предлагается в другом ответе), но у меня нет большого опыта работы с Chrome из VBA, только при запуске приложений из оболочки. Есть несколько способов, которым вы можете подождать заданное количество секунд, но если это не IE, я не думаю, что вы можете подождать, пока Chrome закончит загрузку URL-адреса, не определяя процессор или сетевую активность с точки зрения O/S. – Jeeped

+0

Итак, давайте подождем, мы хотим подождать 5 секунд, если я буду использовать 'wait'' timeout' или оба? –

0

Метод Shell() передает все аргументы в виде строки в командной строке. Убедитесь, что ваш объект hl в «-url hl» находится вне котировок. В противном случае Shell() передает «hl» в качестве гиперссылки вместо «https://www.google.com».

По этой же причине избавитесь от дополнительных котировок вокруг chromePath.

Попробуйте это:

Sub Open_HyperLinks() 

    Dim chromePath As String 
    chromePath = "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" 
     Dim hl As Hyperlink 
     On Error Resume Next 
     For Each hl In Selection.Hyperlinks 
      Shell (chromePath & " -url -newtab " & hl) 
     Next hl 
End Sub 

Примечание: Я не проверял эти флаги для хромированной исполняемого файла.

+0

Попробуйте заменить «hl» на «hl.Address» в вызове Shell() –

Смежные вопросы