Selenium Basic VBA将日期从网页复制到Excel随机交换日期和月份

Selenium Basic VBA将日期从网页复制到Excel随机交换日期和月份,excel,vba,selenium,selenium-chromedriver,Excel,Vba,Selenium,Selenium Chromedriver,我使用Selenium Basic VBA在Excel URL表中循环,打开每个URL,在该网页上查找特定的日期字段,并将日期作为字符串返回Excel表中的一列 10次中有9次效果很好,但似乎是随机的,返回日期时会交换日期和月份,即网页显示“2019年11月5日”,Excel列显示“2019年5月11日” 发生这种情况时,日期在Excel中也会右对齐,而所有其他日期都显示为左对齐。当我编辑左对齐的单元格,然后选择另一个单元格时,它们会右对齐,而右对齐的单元格保持不变。这本身并不是一个问题,但我想

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

10次中有9次效果很好,但似乎是随机的,返回日期时会交换日期和月份,即网页显示“2019年11月5日”,Excel列显示“2019年5月11日”

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

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

我不得不添加一个
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

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

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

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

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

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

可能是因为excel格式的缘故,您是否尝试过在日期前加上
(单引号)?类似于
Application.WorksheetFunction.Trim(“”&bot.FindElementByCss(“.l-row-block:nth-child(1.field:nth-child(7.value”).Text)
@supporturi宾果,没错!非常感谢:)可能是因为excel格式的缘故,您是否尝试过在日期前加上
(单引号)?类似于
Application.WorksheetFunction.Trim(“”&bot.FindElementByCss(“.l-row-block:nth-child(1.field:nth-child(7.value”).Text)
@supporturi宾果,没错!非常感谢:)