我正在尝试使用 excel vba 网站抓取从“https://in.tradingview.com/symbols/NSE-ABB/technicals/”获取数据,尽管我收到了响应,但 body.innerHTML 未显示所需的表格,但在 Chrome 中,如果我检查页面,我可以看到带有名称的表格。
代码有什么问题吗?
With CreateObject("MSXML2.XMLHTTP")
.Open "GET", URL, False
.send
sResponse = StrConv(.responseBody, vbUnicode)
End With
sResponse = Mid$(sResponse, InStr(1, sResponse, "<!DOCTYPE "))
WriteTxtFile sResponse
With html
.body.innerHTML = sResponse
Set tElementC = .getElementsByClassName("table-1i1M26QY- maTable-27Z4Dq6Y- tableWithAction-2OCRQQ8y-")(0).getElementsByTagName("td")
End With
Run Code Online (Sandbox Code Playgroud)
URL --> https://in.tradingview.com/symbols/NSE-ABB/technicals/ 要访问的类名 = "table-1i1M26QY- maTable-27Z4Dq6Y- tableWithAction-2OCRQQ8y-"
我有一个来自的列表
public class main
{
public list<myclass> data { get; set; }
}
public class myclass
{
public string variety { get; set; }
public string ordertype { get; set; }
public string producttype { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
现在我想将 List 转换为返回一个数组以进行 VBA 互操作,如何在一条语句中循环遍历我的类以一次性将所有元素转换为数组。我还有其他一些包含大量元素的类。我已经尝试了下面的代码,但它抛出了越界错误。我需要自动循环遍历 myclass 中的元素并将其分配给数组等。是否有任何替代/单行语句可以将整个列表转换为数组。
string[] NamesArray = new string[list.Count];
string[] NamesArray2 = new string[] { };
for (int i = 0; i < NamesArray.Length; i++)
{
int idx = 0;
NamesArray[i] = bres.data[i].ToString();//here I am getting the myclass …Run Code Online (Sandbox Code Playgroud)