作为我愉快地解决问题的下一步(不理解为什么 WinHTTP 不验证某些 HTTPS 资源),我需要漂亮地解析获得的 CSV。目前我使用以下解决方案:
If HTTPReq.Status = 200 Then
If FSO.FileExists(CSV_Path) = True Then FSO.DeleteFile (CSV_Path)
Set FileStream = CreateObject("ADODB.Stream")
FileStream.Open
FileStream.Type = 1
FileStream.Write HTTPReq.responseBody
FileStream.SaveToFile (CSV_Path)
FileStream.Close
ActiveWorkbook.Connections("Redmine Timelog").Refresh
ActiveSheet.PivotTables("PivotTable_RM").PivotCache.Refresh
End If
也就是说,我将 CSV 保存到磁盘,然后将其作为数据源链接到 Excel。但是,我想让我的 Excel 书自给自足,无需创建其他文件(出于一些非常明显的原因)。
就我而言,解决方案非常简单:WinHTTP.responseText
在单独的 Excel 工作表上逐行存储(而不是当前存储的链接 CSV),然后使用Text to Data
Excel 转换。但是,我面临以下直接麻烦:
- CSV 是 UTF-8 编码的,而原始 WinHTTP 响应文本似乎不是。有没有办法使用所需的编码来解释它?
- 如何将 CSV 拆分为行?使用
Split
函数还是其他什么?CSV 似乎使用了一些标准的 NewLine 字符,并且 99% 的数据应该没有这些字符。
解决了许多类似的问题,但到目前为止,我发现 VBA 没有任何明确和可接受的问题,因此我们将不胜感激。提前致谢!