编辑HTML源文件

时间:2016-09-18 18:09:26

标签: excel vba excel-vba

我们想要使用Excel宏编辑.htm文件。

这是我到目前为止所做的,这是尝试打开文件,替换HTML正文中的一些占位符,然后将文件另存为HTML文件:

Sub SaveCustomerCountHTML()

Dim customerCountHTML As HTMLDocument
Dim customerCount As String
Dim customerPercentage As String
Dim strHTML As String


Set customerCountHTML = CreateObject("O:\00.Department Documents\06.Status Board Updates\Daily Sales\Templates\CUSTOMER COUNT.htm")

strHTML = customerCountHTML.HTMLbody
customerCount = "55"
customerPercentage = "2"

strHTML = Replace(customerCountHTML.HTMLbody, "%CUSTOMERCOUNT%", customerCount)
strHTML = Replace(customerCountHTML.HTMLbody, "%CUSTOMERPERCENTAGE%",     customerPercentage)

customerCountHTML.SaveAs Filename:= _
"O:\00.Department Documents\06.Status Board Updates\Daily     Sales\Templates\CUSTOMER COUNT2.htm", _
FileFormat:=xlHtml, _
CreateBackup:=False
End Sub

我们绝对不想在Internet Explorer中打开文件 - 我们只想编辑正文中的占位符并重新保存到另一个文件夹,而不会看到它正在做什么。

我在“设置customerCountHTML”行上收到错误消息“ActiveX组件无法创建对象”。尽管我们在参考文献中包含了Microsoft HTML对象库,但我们还得到了HTMLBody行的“对象不支持此属性或方法”错误。

同样,意图/尝试是简单地将HTML文件作为对象打开,替换该文件中的文本,然后保存文件。所有这一切都无需看到任何打开或关闭。在线答案大多包括Internet Explorer或Outlook,我们只想编辑文件。

1 个答案:

答案 0 :(得分:1)

正如@Comintern所说,HTML文件只不过是文本文件。您可以打开它们并将它们作为文本文件处理,您可以将它们保存为文本文件,但扩展名为.htm / html

但是,使用文本文件并不能为您提供任何上下文信息,因此您无法轻松区分table标记,在css或javascript中使用table或属性,或实际的内容

如果您知道您想要替换的确切文本是唯一且可靠地找到而没有任何误报,那么替换文本就足够了。但是,如果您需要能够找到并替换可能不明确的HTML的特定部分,那么可能值得确保该文件符合XHTML,并使用MSXML类型库打开该文件。然后,您可以将该文件作为XML文档处理,包括节点树和用于查找节点的所有MSXML功能。