innertext VBA 和 excel 之间的冲突

Conflict between innertext VBA and excel

我需要帮助将信息从 InternetExplorer 抓取到 Excel 工作簿。 当我报废时,innertext 属性 中的信息是正确的,但是 excel 中的信息是错误的。 使用代码:

Workbooks("Automatizar PSA").Sheets(1).Cells(linha, 5).Value = ie.Document.getelementsbyclassname("tr-visualizar-detalhes text-center")(i + 1).innertext

我认为这是因为它们假定了不同的变量,我使用了变量检查并得到:

Watch : : ie.Document.getelementsbyclassname("tr-visualizar-detalhes text-center")(i + 1).innertext : 
"06/04/2017 11:09 " : Variant/String : Módulo11.PSAScrap

Watch : : Workbooks("Automatizar PSA").Sheets(1).Cells(linha, 5).Value : 
04/06/2017 11:09:00 : Variant/Date : Módulo11.PSAScrap

任何帮助,我该如何解决?抱歉我发帖的方式,不熟悉论坛,我怎样才能将它粘贴为代码? 谢谢!!

这是区域性 DMY 与 MDY 问题。您的样本 DMY/MDY 不明确,因此无法判断日期的开始日期或系统的区域设置。

日期不明确(月份和日期都小于 13)的问题是 Excel 会将 DMY 解释为 MDY,反之亦然。对于任何其他一天大于 12 的人,Excel 只会将错误的日期作为文本输入。

这是一个 'helper' 函数,可以将 DMY 翻转为 MDY 或将 MDY 翻转为 DMY。

function flipDMYMDY(str as string)
    str = trim(str)
    flipDMYMDY = mid(str, 4, 3) & left(str, 3) & right(str, 10)
end function

用作,

Workbooks("Automatizar PSA").Sheets(1).Cells(linha, 5).Value = _
   flipDMYMDY(ie.Document.getelementsbyclassname("tr-visualizar-detalhes text-center")(i + 1).innertext)