【问题标题】:Selenium Basic VBA Copying Date from Webpage to Excel Randomly Swapping Day and MonthSelenium Basic VBA 将日期从网页复制到 Excel 随机交换日期和月份
【发布时间】:2020-12-15 07:05:27
【问题描述】:

我正在使用 Selenium Basic VBA 循环遍历 URL 的 Excel 表,打开每个 URL,在该网页上找到特定的日期字段,并将日期作为字符串返回到 Excel 表上的列。

10 次中有 9 次完美运行,但似乎是随机返回的日期与日期和月份交换,即网页显示“2019 年 5 月 11 日”,Excel 列显示“2019 年 5 月 11 日” .

发生这种情况时,日期在 Excel 中也是右对齐的,而所有其他日期都显示为左对齐。当我编辑左对齐的单元格然后选择另一个单元格时,它们然后右对齐,而右对齐的单元格保持不变。这本身不是问题,但我想知道它是否包含问题的线索。

如果它有帮助的话,这就是我用来提取数据的 VBA 代码(我已经在 URL 中散列了机密但不相关的细节)。我使用的是 Google Chrome 作为浏览器。

我必须添加一个bot.Wait 来给页面加载时间,并使用Application.WorksheetFunction.Trim() 因为网页在日期字符串后包含一个空格。

Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("data")
    
    Dim tbl As ListObject
    Set tbl = ws.ListObjects("opportunities")
    
    For i = 1 To tbl.ListRows.Count
        If tbl.ListRows(i).Range(10) = "" Then
            bot.Get "########" & tbl.ListRows(i).Range(1)
            bot.Wait (500)
            tbl.ListRows(i).Range(10) = Application.WorksheetFunction.Trim(bot.FindElementByCss(".l-row-block:nth-child(1) .field:nth-child(7) .value").Text)
        End If
    Next i

任何关于这里可能发生的事情的指导都会非常有用!

【问题讨论】:

  • 可能是excel格式的原因,你试过在日期前加上'(单引号)吗?类似Application.WorksheetFunction.Trim("'" & bot.FindElementByCss(".l-row-block:nth-child(1) .field:nth-child(7) .value").Text)
  • @supputuri 宾果游戏,明白了!非常感谢:)

标签: excel vba selenium selenium-chromedriver


【解决方案1】:

请在日期前加上单引号',如下所示。

Application.WorksheetFunction.Trim("'" & bot.FindElementByCss(".l-row-block:nth-child(1) .field:nth-child(7) .value").Text)

【讨论】:

    猜你喜欢
    • 2018-05-16
    • 2014-11-02
    • 1970-01-01
    • 1970-01-01
    • 2019-06-30
    • 2020-03-15
    • 2018-12-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多