Selenium + VBA для управления Chrome

Я использую Селен + VBA, чтобы запустить Chrome, чтобы открыть 10 URL-адресов, перечисленных в диапазоне ячеек ("A1: A10"). Я не знаком с селеном, после многократных попыток я наконец-то оказался ниже неуклюжих кодов.

Private selenium As New ChromeDriver

Sub test()
Dim cell As Range
Dim keys As New selenium.keys
Dim pageNo As Integer

    pageNo = 0
    selenium.Start "chrome", "http://www.google.com/"
    For Each cell In Range("A1:A10")
        If pageNo >= 1 Then
            selenium.SendKeys keys.Control & "t" + keys.Control & "t"
            selenium.SwitchToNextWindow
        End If
        selenium.Get cell.Value
        pageNo = pageNo + 1
    Next
End Sub

Несколько проблем и вопросов:

Я не понимаю, почему мне нужно дважды нажать клавиши «Ctrl + t», чтобы успешно открыть новую вкладку.

Почему я должен добавить selenium.SwitchToNextWindow после открытия новой вкладки, или следующий URL будет открыт на исходной вкладке, а не на новой вкладке?

Довольно часто после открытия 3 ~ 5 URL-адресов vba выскакивает ошибка "недостаточно памяти" и перестает загружать следующий URL-адрес. Но если я запускаю коды построчно в среде отладки, все 10 URL могут быть успешно открыты. Почему это?

Я гуглил, что если я хочу, чтобы chrome не выходил после завершения работы макроса, я должен объявить объект селен вне подпрограммы, хотя я не совсем понимаю причину. Может ли кто-нибудь помочь объяснить мне простым способом?

Если какие-либо эксперты могут помочь мне оптимизировать мои коды, это будет очень цениться! У меня система Win7 64bit + Excel 2010.

Спасибо с наилучшими пожеланиями.

Ответы на вопрос(1)

Ваш ответ на вопрос