2014-05-21 33 views
3

可用的hereHTML文檔似乎打破了VBA - 它會使Word 2003崩潰,而Word 2010看起來很怪異。打開HTML文檔時Word形狀損壞

如果您在Word中,ALT +到VBA編輯器F11打開HTML文件,添加一個類並粘貼此代碼:

Sub Test() 
    Dim obj As Document 
    Set obj = Application.ActiveDocument 

    MsgBox (obj.Shapes.Count) 

    For Each a In obj.Shapes 
     MsgBox (a) 'THIS NEVER GETS HIT - w00t 
    Next 

End Sub 

添加斷點上第二個消息框 - 它不會獲得擊中。

這個deosnt有道理。 Word中的錯誤?損壞的HTML?

+0

我在我的Word 2010中試過,但我也無法進入循環。我也嘗試將內容複製到正常的單詞文檔,同樣的故事。另一件事:obj.shapes.selectall給出了'內存不足'的錯誤。恐怕不能幫助你。 – Yoh

+0

我無法加載您的HTML到我的Word(2013)...無論如何,嘗試將您的代碼添加到模塊,而不是類。接下來,嘗試以這種方式遍歷'InlineShapes':'For Each a in obj.InlineShapes'。 –

+3

我相信html文件與Word不兼容,查看html源代碼,有關形狀的細節太少(或僅限於某些程序)。尤其是'path =「m @ 4 @ 5l @ 4 @ 11 @ 9 @ 11 @ 9 @ 5xe」'。你能確認這個html文件的生成位置嗎? – PatricK

回答

0

感謝帕特里克

它看起來像形元素的path屬性已損壞。我們需要仔細查看原始信息及其來源。

在 '原始' MSG文件的路徑:

路徑= 「米@ 4 @5升@ 4 @ 11 @ 9 @ 11 @ 9 @ 5xe」

一次靜音(到路徑=」 「)問題已解決。

http://msdn.microsoft.com/en-us/library/bb263871%28v=vs.85%29.aspx

我覺得路徑的逗號被轉換到在某些點(@)的跡象,因爲如果我們更換他們,看着上面的鏈接路徑規範將是有效的。