我使用Selenium Basic VBA在Excel的URL表中循环,打开每个URL,在该网页上找到一个特定的日期字段,并将日期作为字符串返回到Excel表上的一列。
10次中有9次是完美的,但似乎是随机的,日期被返回,日期和月份被交换,即网页显示";05/11/2019";Excel列显示";11/05/2019";。
发生这种情况时,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)