Используйте правильное ожидание загрузки страницы.Не забудьте закрыть приложение после.На странице есть только один элемент с таким именем класса.Я думаю, что вы на самом деле хотите другой селектор, как показано ниже.
Option Explicit
Public Sub StatusLetter()
SearchandScrape "Apple"
End Sub
Public Sub SearchandScrape(URL As String)
Dim IE As SHDocVw.InternetExplorer, headlines As Object, i As Long
Dim agenciesAndTime As Object, agencies As Object, times As Object, descriptions As Object
Set IE = New SHDocVw.InternetExplorer
With IE
.Visible = True
.Navigate2 "https://www.google.com/search?q=" & URL & "&tbm=nws&source=lnt&tbs=qdr:d&sa=X&ved=0ahUKEwjf_LHL1bngAhXqQ98KHTs2D4QQpwUIHw&biw=1282&bih=893&dpr=1"
While .Busy Or .readyState < 4: DoEvents: Wend
Set headlines = .document.querySelectorAll("h3.r")
Set agenciesAndTime = .document.querySelectorAll("h3.r + div span")
Set agencies = .document.querySelectorAll("h3.r + div span:nth-of-type(1)")
Set times = .document.querySelectorAll("h3.r + div span:nth-of-type(3)")
Set descriptions = .document.querySelectorAll("#ires div.st")
Dim results(), headers()
headers = Array("Headline", "Agency&Time", "Agency", "Time", "Description")
ReDim results(1 To headlines.Length, 1 To 5)
If headlines.Length > 0 Then
For i = 0 To headlines.Length - 1
results(i + 1, 1) = headlines.item(i).innerText
results(i + 1, 2) = agenciesAndTime.item(i).innerText
results(i + 1, 3) = agencies.item(i).innerText
results(i + 1, 4) = times.item(i).innerText
results(i + 1, 5) = descriptions.item(i).innerText
Next
End If
.Quit
With ThisWorkbook.Worksheets("Sheet1")
.Cells.ClearContents
.Cells(1, 1).Resize(1, UBound(headers) + 1) = headers
.Cells(2, 1).Resize(UBound(results, 1), UBound(results, 2)) = results
End With
End With
End Sub