Попробуйте этот код. Он работал на моей Windows 7 64-битной версии Chrome 62.0.3202.75.
Обычно Chrome открывает последующие URL-адреса в новой вкладке, а не в новом окне. Таким образом, вы не сможете контролировать это поведение, если используете Hyperlink.Follow
методу в вашем VBA. Уловка заключается в том, чтобы вызывать новый экземпляр Chrome с помощью функции Shell после обработки каждой строки, чтобы последующие URL-адреса открывались в этом новом экземпляре и так далее.
Хотя этот код работал с моей стороны, он может или не может работать точно так, как ожидалось, в зависимости от версий ОС Windows /Chrome и способа его разработки. Так что попробуйте и доложите.
Более того, использование Shell может немного ускорить открытие URL-адреса, и самое главное, что Chrome все равно откроет действительный текстовый URL-адрес, даже если он на самом деле не разрешен как URL-адрес в документе Excel.
Sub OpenHyperLinks()
On Error Resume Next
Dim xHyperlink As String
Dim WorkRng As Range
Dim cell As Range
Dim counter As Integer
Dim col_counter As Integer
Dim row_counter As Integer
Dim pHandle
Const Chrome_Path = "C:\Program Files (x86)\Google\Chrome\Application\Chrome.exe"
'Set above Constant Chrome_Path to match Chrome.exe location on your PC
counter = 0
row_counter = 0
Set WorkRng = Application.InputBox("Select Range", Type:=8)
If WorkRng.Rows.Count = 0 Then
Exit Sub
End If
col_counter = WorkRng.Columns.Count
For Each cell In WorkRng
If counter = 0 Then
pHandle = Shell(Chrome_Path)
End If
xHyperlink = cell.Value
If xHyperlink = "" Then
Else
pHandle = Shell(Chrome_Path & " -url " & xHyperlink)
End If
counter = counter + 1
If counter = col_counter Then
counter = 0
End If
Next
End Sub
В коде нет особой проверки. В случае, если вы отмените в InputBox, саб выход выходит, так как нечего обрабатывать, и если Гиперссылка пуста, она будет пропущена. Установите константу Chrome_Path в соответствии с местоположением Chrome.exe на вашем компьютере, на случай, если он установлен в другую папку / раздел на вашем компьютере.
Если вам нужно обработать сотни URL-адресов, это может в конечном итоге замедлить работу вашего ПК, так как несколько экземпляров Chrome должны занимать память. В качестве альтернативы вы можете сделать паузу после каждой записи, используя MsgBox
или около того, и вручную закрыть открытый экземпляр Chrome после завершения работы с ним.