我希望VBA宏能够使一列单元格自动在Internet Explorer的多个选项卡中打开。 单元格是Google的搜索查询,每个单元格都在具有定义范围的多个标签中打开。
Sub GoogleSearch()
Dim objIEBrowser
Set objIEBrowser = CreateObject("InternetExplorer.Application")
objIEBrowser.Visible = True
Dim SearchTerm As String
For Each Cell In Range("D6:D14")
SearchTerm = Cell
SearchTerm = Replace(SearchTerm, " ", "+")
objIEBrowser.navigate "https://www.google.com/?gws_rd=ssl#q=" & SearchTerm
Next
End Sub
这将导致宏打开最后一个单元格(D14),而不搜索或打开所有其他单元格。
答案 0 :(得分:1)
您正在导航到同一窗口中的每个URL。您需要打开新的标签页或窗口。标记要做什么的常量here。
这是少量的单元格,因此我没有将这些搜索值读入数组。通常,我会将其读入数组,然后循环该数组,而不是在每个单元格的循环中从工作表中来回往返地产生重复的I / O成本。
Option Explicit
Public Sub GoogleSearch()
Dim objIEBrowser, searchTerm As String, i As Long, cell As Range
Set objIEBrowser = CreateObject("InternetExplorer.Application")
objIEBrowser.Visible = True
For Each cell In ActiveSheet.Range("D6:D14") 'better to use explicit sheet name
searchTerm = Replace$(cell.Value, " ", "+")
If i = 0 Then
objIEBrowser.navigate "https://www.google.com/?gws_rd=ssl#q=" & searchTerm
Else
objIEBrowser.document.parentWindow.execScript "window.open('" & "https://www.google.com/?gws_rd=ssl#q=" & searchTerm & "');"
End If
i = i + 1
Next
Stop
objIEBrowser.Quit
End Sub
或:
Option Explicit
Public Sub GoogleSearch()
Dim objIEBrowser, searchTerm As String, i As Long, cell As Range
Set objIEBrowser = CreateObject("InternetExplorer.Application")
objIEBrowser.Visible = True
For Each cell In ActiveSheet.Range("D6:D14") 'better to use explicit sheet name
searchTerm = Replace$(cell.Value, " ", "+")
objIEBrowser.Navigate2 "https://www.google.com/?gws_rd=ssl#q=" & searchTerm, CLng(1)
Next
Stop
objIEBrowser.Quit
End Sub
Option Explicit
Public Sub GoogleSearch()
Dim objIEBrowser, searchTerm As String, i As Long, cell As Range, flag As Long
Set objIEBrowser = CreateObject("InternetExplorer.Application")
objIEBrowser.Visible = True
i = 0
For Each cell In ActiveSheet.Range("D6:D14") 'better to use explicit sheet name
searchTerm = Replace$(cell.Value, " ", "+")
flag = IIf(i = 0, 1, 2048)
objIEBrowser.Navigate2 "https://www.google.com/?gws_rd=ssl#q=" & searchTerm, CLng(flag)
i = i + 1
Next
Stop
objIEBrowser.Quit
End Sub