Использование класса это нормально.На странице только 1 совпадение, поэтому не нужно захватывать несколько коллекций и выполнять цикл.Просто используйте querySelector
для возврата первого совпадения.
Public Sub GetNumberSold()
Dim html As HTMLDocument
Set html = New HTMLDocument
With CreateObject("MSXML2.XMLHTTP")
.Open "GET", "https://www.ebay.com/itm/VIRGINIA-CAVALIERS-FINAL-FOUR-National-FREAKIN-Champions-T-Shirt-Gildan/352639122861", False
.send
html.body.innerHTML = .responseText
End With
MsgBox html.querySelector(".vi-txt-underline").innerText
Debug.Print Replace$(html.querySelector(".vi-txt-underline").innerText," sold",vbNullString)
Debug.Print split(html.querySelector(".vi-txt-underline").innerText,chr$(32))(0)
End Sub