编辑HTML源文件

我们有我们想用Excelmacros编辑的.htm文件。

这是我到目前为止,这是试图打开该文件,replaceHTML正文中的一些占位符,然后将该文件保存为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中打开这个文件 – 我们只想编辑正文中的占位符,然后重新保存到另一个文件夹中,而不必看到它在做什么。

我收到“Set customerCountHTML”行上的错误消息“ActiveX组件不能创build对象”。 即使我们在引用中包含了Microsoft HTML对象库,我们也得到了HTMLBody行的“对象不支持此属性或方法”错误。

再次,意图/尝试是简单地打开HTML文件作为对象,replace该文件中的文本,并保存该文件。 所有这些都不需要看到任何开启或closures。 网上的大部分答案都以某种方式包含Internet Explorer或Outlook,我们只是想编辑文件。

正如@Comintern所build议的,HTML文件不过是文本文件。 您可以打开它们并将它们作为文本文件进行处理,并且可以将它们另存为文本文件,但使用.htm / html扩展名。

但是,使用文本文件不会给你任何上下文信息,所以你不能轻易地区分table标记,在CSS或JavaScript或属性,或在实际内容中使用table

如果你知道你想要replace的确切文本是独一无二且可靠的,没有任何误报,那么更换文本就足够了。 但是,如果您需要能够查找并replace可能不明确的HTML的特定部分,则可能需要确保该文件符合XHTML,并使用MSXMLtypes库打开该文件。 然后,您可以将该文件作为XML文档使用,包括节点树和用于查找节点的所有MSXMLfunction。