Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 如何制定Asyc方法_Excel_Vba - Fatal编程技术网

Excel 如何制定Asyc方法

Excel 如何制定Asyc方法,excel,vba,Excel,Vba,我是XMLHHTP的新手,我只是在一些人的在线帮助下编写了下面的代码,并意识到我需要使其异步,因为工作簿需要访问数百个URL 如果有人能对此进行研究并将其转换为异步,我将不胜感激 Sub GetInfo() Dim Http As New XMLHTTP60, Html As New HTMLDocument Dim lastrow As Long, i As Long Dim sdd As String Dim add As Variant Dim u

我是XMLHHTP的新手,我只是在一些人的在线帮助下编写了下面的代码,并意识到我需要使其异步,因为工作簿需要访问数百个URL

如果有人能对此进行研究并将其转换为异步,我将不胜感激

Sub GetInfo()

    Dim Http As New XMLHTTP60, Html As New HTMLDocument
    Dim lastrow As Long, i As Long
    Dim sdd As String
    Dim add As Variant
    Dim url As Range

    i = 2

    For Each url In Range(Cells(3, "J"), Cells(Rows.Count, "J").End(xlUp))
        With Http
            .Open "GET", url, False
            .send
            Html.body.innerHTML = .responseText
        End With

        On Error Resume Next
        sdd = Html.querySelector("span[itemprop='price']").getAttribute("content")
        i = i + 1
        Sheet1.Cells(i, "K") = sdd

    Next url


End Sub

我得到了你的答案,看看这个演练


我希望这能有所帮助。

当你说异步时,你是指后台处理还是不阻塞用户界面?这是不同的。嗨,皮肤,谢谢你调查这件事。这就是我认为
async
可以做到的。读一读这篇文章。。。可能有助于理解Excel的异步功能。我唯一的建议是查看计时器,看看它们是否能满足您的要求。谢谢您将我引导到该链接。我以前确实读过它,还有一些更详细的参考资料。我必须说,就我目前的水平而言,我不知道如何将它应用到我的工作表中。因此,如果有人能将我的代码转换成
async
,我想你需要考虑将逻辑抽象成另一种语言,在这种语言中你可以打开工作簿,异步运行http调用,比如C#或其他什么。不过,它不太可能给你想要的用户界面体验,这是缺点。谢谢你,我会检查一下的。