2016-09-18 152 views
1

我們希望使用Excel宏編輯.htm文件。編輯HTML源文件

這裏是我到目前爲止,這是打開文件,替換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中打開文件 - 我們只想編輯正文中的佔位符,然後重新保存到另一個文件夾中,而不必看它在做什麼。

我在「Set customerCountHTML」行中收到錯誤消息「ActiveX組件無法創建對象」。即使我們在引用中包含了Microsoft HTML對象庫,我們也得到了HTMLBody行的「對象不支持此屬性或方法」錯誤。

此外,意圖/嘗試是簡單地打開HTML文件作爲對象,替換該文件中的文本並保存文件。所有這些都不需要看到任何開啓或關閉。大部分在線答案都包含Internet Explorer或Outlook,我們只是想編輯文件。

+1

上面的示例正在替換整個'HTMLBody'。爲什麼不把它作爲文本文件打開? – Comintern

+0

我會給你一個鏡頭。感謝提示,我想它並不是真的需要以HTML格式打開,只是保存爲一個。 – user4333011

+0

看看這個:http://stackoverflow.com/questions/18286598/read-local-html-file-into-string-with-vba – Miqi180

回答

1

正如@Comintern所建議的,HTML文件不過是文本文件。您可以打開它們並將它們作爲文本文件進行處理,並且可以將它們另存爲文本文件,但使用擴展名爲.htm/html

然而,使用文本文件不給你任何上下文信息,所以你不能輕易區分table標籤,在CSS中使用table或JavaScript或屬性,或者在實際內容

如果你知道你想要替換的確切文本是獨一無二的,可靠地找到沒有任何誤報,那麼替換文字就夠了。但是,如果您需要能夠找到並替換HTML中可能不明確的特定部分,則可能需要確保文件符合XHTML,並使用MSXML類型庫打開該文件。然後,您可以將該文件作爲XML文檔處理,包括節點樹和用於查找節點的所有MSXML功能。

+0

我會記住這爲答案,因爲它使我們在正確的方向,但作爲一個答案就缺乏特異性,並介紹了有關在這裏是我們的目的不相關信息的標籤混亂的元素。真正的解決它使我們可以接受的答案被發現這裏:http://stackoverflow.com/questions/19371990/how-do-i-replace-a-string-in-a-line-of-a- text-file-using-filesystemobject-in-vba。如果任何人需要在htm/html文件中替換精確的文本(我們使用佔位符),並將其保存在該文章中接受的答案中,使用我們的htm/html文件。 – user4333011

+0

考慮**不是**將HTML視爲文本文件,而是將其視爲可使用DOM屬性解析的標記文件。如果HTML格式良好,如XML,您可以使用XSLT修改源文件。請發佈一個html示例進行演示。 – Parfait