html - 创建 Excel 函数以将 HTML 文件的一部分加载到单个单元格中?
问题描述
背景
每天,我将数百个产品上传到我们的数据库中,每个产品都包含“简短描述”、“完整描述”和“元描述”。我将这些写在我构建的 HTML 模板中,从历史上看,我只是将描述的每个部分复制并粘贴到它们相应的单元格中。但是,最近我确定保存每个 'description'.html 文件(以供重复使用)并编写 Excel 函数以从描述文件中提取必要的数据可能会更快。
我在 Mac 上使用 Excel,我对 VBA 很陌生。
这是我想要完成的:创建一个函数,将本地文件中的 HTML 内容加载到单个单元格中,并使用函数参数来确定应该将 html 的哪一部分加载到单元格中。
首先,我试图“只是”将 html 数据放入“一个”单元格中。
接下来,我需要通过“短”、“长”或“元”描述来分隔数据。
到目前为止,我一直坚持通过 VBA 获取单元格中的 html。
这是我的功能:
Function Description(InputFile, Part As String)
Dim URL As String
Dim IE As InternetExplorer
Dim HTMLDoc As HTMLDocument
Dim DescPart As String
Set IE = New InternetExplorer
URL = InputFile
DescPart = Part
With IE
.navigate URL
.Visible = False
While .Busy Or .readyState <> READYSTATE_COMPLETE: DoEvents: Wend
Set HTMLDoc = .document
End With
Select Case DescPart
Case Short 'Get Short Description (Future)
Description = HTMLDoc
Case Full 'Get Full Description (Future)
Description = HTMLDoc
Case Meta 'Get Meta Description (Future)
Description = HTMLDoc
End Select
End Function
我已经阅读了很多关于使用 VBA 阅读 HTML 的内容(我大部分都不懂)。上面的代码或多或少是根据我的研究开发的。我很确定使用“Internet Explorer”的传统路线不会起作用,因为它是在 Mac 上构建的(我可能是错的)。我需要 AppleScript 来抓取 HTML 吗?我找到的所有材料都适用于 Windows 上的 VBA。
这可能适用于 Mac,但我仍然遇到错误......(未定义“HTMLDocument”类型)因为 Mac 不允许 Active-x 控件?
Function Description(InputFile, Part As String)
Dim URL As String
Dim HTMLdoc As HTMLDocument, HTMLdoc2 As HTMLDocument
Dim DescPart As String
URL = InputFile
DescPart = Part
Set HTMLdoc2 = New HTMLDocument
Set HTMLdoc = HTMLdoc2.createDocumentFromURL(URL, "")
While HTMLdoc.readyState <> "complete"
DoEvents
Wend
Select Case DescPart
Case Short
Description = HTMLdoc
Case Full
Description = HTMLdoc
Case Meta
Description = HTMLdoc
End Select
End Function
解决方案
推荐阅读
- python-3.x - 获取类型错误:函数在使用 image_slicer python 时恰好需要 6 个参数(给定 5 个)
- ruby-on-rails - 如何为 rails 编写一个范围(使用 has_scope)来查找在两个给定日期之间具有 created_at 日期的订单(start_date 和 end_date)
- javascript - 无法访问打字稿中的数据
- java - 二元运算符的错误操作数类型,“<=”不起作用,即使我相信我正在使用整数
- flutter - 如何在 IgnorePointer 的子级中覆盖 IgnorePointer?
- firebase - firebase tools.firestore 云函数中未解析的变量firestore
- python - 将批次、高度、宽度、alpha 更改为 pytorch 的批次、alpha、高度、宽度
- c# - C#如何添加记录
- haskell - 是否可以使用(共)递归创建有效的重组树?
- excel - Excel VBA:尝试添加超链接时出现运行时错误 1004 应用程序定义或对象定义错误