相关疑难解决方法(0)

无法使我的脚本异步运行

我已经在vba中编写了一个脚本,以从torrent网站中刮取不同内容movie names及其内容。尽管和出现在其登录页面中,但我还是创建了脚本来解析同一层(从其主页开始)深一层的脚本。为了更清楚,这是这样的一个页面我的意思的主页。我的脚本完美地解析了它们。但是,我的意图是执行异步请求。当前,脚本正在同步(以阻塞方式)完成其工作。genrenamegenre

一篇文章中,我得到了omegastripes谁创建的脚本的答案(which more or less performs like how multiprocessing works),该脚本本来可以工作asynchronously。因此,这就是我找到的主意,但无法在以下脚本中实现。

到目前为止我的尝试:

Sub GetInfo()
    Const URL = "https://yts.am/browse-movies"
    Dim Http As New ServerXMLHTTP60, Html As New HTMLDocument
    Dim post As HTMLDivElement, oName$, oGenre$, R&
    Dim I&, key As Variant, iDic As Object
    Set iDic = CreateObject("Scripting.Dictionary")

    With Http
        .Open "GET", URL, False
        .send
        Html.body.innerHTML = .responseText
    End …
Run Code Online (Sandbox Code Playgroud)

vba asynchronous web-scraping

15
推荐指数
2
解决办法
525
查看次数

找不到任何方法点击下拉菜单选择任何更好的项目

我在vba中编写了一些代码,使用IE England Premier League从下拉列表中进行选择,Next To Play此时此刻可见.我的目标是点击标题为的下拉链接Next To Play,然后选择Australia A-Leaguefrom选项.但是,我找不到任何方法来点击这个链接.如果我按原样运行我的下面的脚本,它既不起作用也不抛出任何错误,最后退出浏览器.

链接到该网页:URL

这是我到目前为止所尝试的:

Sub soccer()
    Dim IE As New InternetExplorer, html As HTMLDocument
    Dim post As Object

    With IE
        .Visible = True
        .navigate "replace_with_above_link"
        Do Until .readyState = READYSTATE_COMPLETE: Loop
        Set html = .document
    End With

    Application.Wait Now + TimeValue("00:00:05")
    For Each post In html.getElementsByTagName("option")
''        If InStr(post.innerText, "Next To Play") > 0 Then MsgBox post.innerText: Exit For  ''checked to see if I'm on …
Run Code Online (Sandbox Code Playgroud)

excel vba click excel-vba web-scraping

7
推荐指数
1
解决办法
906
查看次数

在Windows上的Excel VBA中,如何为已解析的JSON变量获取字符串化的JSON表示而不是"[object Object]"?

在这里回答我自己的问题.
我已经在Excel VBA中使用JSON做了一些工作,并发布了许多调查结果,我将以问答形式发布这些内容 https://stackoverflow.com/help/self-answer http://blog.stackoverflow.com/2011/07/ITS-OK-到问一答,你自己的问题/

所以在stackoverflow的其他地方,人们可以看到有关在VBA中解析JSON的问题,但他们似乎错过了一两个技巧.

首先,我重新使用自定义JSON解析库,而是使用ScriptControl的Eval方法作为我所有JSON代码的基础.此外,我们还表达了本机Microsoft解决方案的偏好.

这是一个先前的问题在Windows上的Excel VBA中,如何减轻由IDE的大小写行为破坏的解析JSON的点语法遍历问题?这个问题的基础.它显示了使用VBA.CallByName比使用点语法遍历解析的JSON对象更强大.另一个先前的问题在Windows上的Excel VBA中,如何循环解析JSON数组?展示了如何使用它来访问数组元素.但是CallByName返回一个奇怪的变量类型,它在Watch窗口中显示为Object/JScriptTypeInfo,如果在一个窗口中有一个类型Debug.Print(或悬停在变量上),则会得到无信息的"[object Object]".

我们如何改进并获得JSON字符串表示?

以下是您在Debug.Print(?)之后在立即窗口中看到的内容以及将鼠标悬停在变量上的屏幕截图.

对象

这是5系列的问题3.这是完整系列

Q1 在Windows上的Excel VBA中,如何减轻由IDE的大小写行为破坏的解析JSON的点语法遍历问题?

Q2 在Windows上的Excel VBA中,如何循环解析JSON数组?

Q3 在Windows上的Excel VBA中,如何为已解析的JSON变量获取字符串化的JSON表示而不是"[object Object]"?

Q4 在Windows Excel VBA中,如何获取JSON键以抢占"运行时错误'438':对象不支持此属性或方法"?

Q5 在Windows上的Excel VBA中,对于已解析的JSON变量,这个JScriptTypeInfo究竟是什么?

excel vba json

6
推荐指数
1
解决办法
3049
查看次数

JSON VBA解析到Excel

我得到了一些JSON解析工作.我使用VBA从我的网络服务器解析JSON代码,将其写入我的Excel工作表中的单元格A1.但我没有把它转换成其他细胞.

这是我的JSON示例:

{
    "@type":["IN.areaList.1","OII.list.1"],
    "@self":"/bereiche",
    "list":[
          {"@type":["IN.bereich.1"],
           "@self":"/1.1.Bereich.2.7",
           "scha":false,
           "trlState":"",
           "oiischa":false,
           "readyTo1":false,
           "readyTo2":false,
           "numberOfBypassedDevices":0,
           "test":"",
           "TestActive":false,
           "chModeActive":false,
           "incs":[]}
            ]
}
Run Code Online (Sandbox Code Playgroud)

这是我的Sub,它正在为另一个样本工作:

Sub JsonToExcelExample()

    Dim jsonText As String
    Dim jsonObject As Object
    Dim item As Object
    Dim i As Long
    Dim ws As Worksheet

    Set ws = Worksheets("Remote")
    jsonText = ws.Cells(1, 1)
    Set jsonObject = JsonConverter.ParseJson(jsonText)
    i = 3
    ws.Cells(2, 1) = "Color"
    ws.Cells(2, 2) = "Hex Code"
    For Each item In jsonObject("0")
        ws.Cells(i, 1) = item("color")
        ws.Cells(i, 2) = item("value") …
Run Code Online (Sandbox Code Playgroud)

excel vba json excel-vba web-scraping

3
推荐指数
1
解决办法
7377
查看次数

从嵌入式谷歌地图中提取标记坐标

对此我很陌生,请耐心等待.我需要从嵌入式谷歌地图中提取标记坐标 - 示例链接是http://www.picknpay.co.za/store-search,我想提取搜索中地图中生成的所有标记位置.考虑使用像ParseHub这样的服务,但在走这条路线之前,我以为我会用SO /我自己动手.

必须有一种更简单的方法来查找存储在地图中的标记的坐标,而不是手动浏览它们并单独搜索它们的坐标?

vba json google-maps excel-vba web-scraping

2
推荐指数
1
解决办法
3568
查看次数

如何在 VBA Excel 中以良好格式显示我的 JSON 对象

我知道当 Json 是“简单”时(当它只是字符串时)在单元格 Excel 中显示我的 Parse Json,但现在我有字符串、对象和数组,我有点迷路了..我的 json 如下:

[
    {
        "name": null,
        "type": null,
        "actions": [],
        "screen": null,
        "container": null,
        "sysid": 5,
        "uftitem": null
    },
    {
        "name": null,
        "type": null,
        "actions": [],
        "screen": null,
        "container": null,
        "sysid": 6,
        "uftitem": null
    },
    {
        "name": "UTProject5",
        "type": "type",
        "actions": [
            {
                "name": "UTProject",
                "description": "UTProject",
                "pattern": "UTProject",
                "isCheck": true,
                "sysid": 1,
                "uftaction": {
                    "sysid_uftAction": 2,
                    "code": "code uft",
                    "maxTime": 10,
                    "nbCycle": 20
                }
            },
            {
                "name": "UTProject2",
                "description": "UTProject",
                "pattern": "UTProject", …
Run Code Online (Sandbox Code Playgroud)

excel vba json

1
推荐指数
1
解决办法
5657
查看次数

使用VBA和VBA-JSON从Wordpress API访问JSON数据

我正在构建一个VBA应用程序,该应用程序使用从网络抓取的资源来创建和修改Wordpress网站页面。Wordpress API返回一个JSON文件,但是在VBA中不支持解析JSON,因此我从GitHub导入了VBA-JSON。这是子例程:

Sub Wordpress()

    '
    ' Wordpress API Test
    '
    Dim wpResp As Variant
    Dim sourceSheet As String
    Dim resourceURL As String
    sourceSheet = "Resources"
    resourceURL = Sheets(sourceSheet).Cells(6, 1)
    wpResp = getJSON(resourceURL + "/wp-json/wp/v2/posts")

End Sub
Run Code Online (Sandbox Code Playgroud)

和它调用的函数。

Function getJSON(link) As Object

    Dim response As String
    Dim json As Object
    On Error GoTo recovery
    Dim retryCount As Integer
    retryCount = 0
    Dim web As MSXML2.XMLHTTP60
    Set web = New MSXML2.XMLHTTP60

the_start:

    web.Open "GET", link, False, UserName, pw
    web.setRequestHeader "Content-type", "application/json"
    web.send …
Run Code Online (Sandbox Code Playgroud)

api wordpress vba json wordpress-rest-api

1
推荐指数
1
解决办法
792
查看次数