2016-03-01 193 views
-1

我一直在嘗試使用來自XML映射窗格的IF字段代碼的內容控件。但我有一些問題。看來,我不能夠控制對內容的值與我想要什麼使用XML映射窗格與IF字段代碼Word文檔

例如比較:

{ IF Language_CodeValue <> "DAN" "ENGLISH" "DANISH" } 

Language_CodeValue是從XML映射窗格中內容的控制。任何幫助,將不勝感激。當我將它顯示在word文檔上時,Language_CodeValue包含DAN。似乎與字符串不起作用的比較

回答

0

內容控件無法成功嵌套在任何類型的字段代碼中。他們無法正常工作。

當你從邏輯上思考它時,這是有道理的,因爲當一個字段更新唯一可以顯示的結果時,這意味着內容控件無法使用。或者如果可以使用,那麼IF字段將無法正常工作。所以基本上,字段代碼需要忽略內容控制。

對此沒有簡單的解決方法,但有一種可能性是在Custom XML Part中的XML節點發生更改時使用Document對象的ContentControlBeforeStoreUpdate事件來運行對象模型操作。它可以將其內容寫入CustomDocumentProperty。 DocProperty字段可以嵌套在If字段中。

將內容控件成功映射到自定義xml部件後,可以觸發ContentControlBeforeStoreUpdate事件。該事件(必須)在包含內容控件的文檔的ThisDocument模塊中定義。

在VBA編輯器中,在Project窗口中雙擊包含內容控件的文檔的ThisDocument。從代碼窗口左上角的列表中選擇「文檔」。從右上角的列表中選擇ContentControlBeforeStoreUpdate。這將爲該事件插入Sub ... End Sub存根。

Private Sub Document_ContentControlBeforeStoreUpdate(_ 
      ByVal ContentControl As ContentControl, _ 
      Content As String) 
    Select Case ContentControl.Title 
    Case "Tree" 
     ActiveDocument.CustomDocumentProperties("test").Value = Content 
    Case Else 
    End Select 
End Sub 

請注意,鏈接到自定義xml部件的所有內容控件都將觸發此事件。因此,您應該檢查內容控件的標題(或標籤)屬性並分支適當的操作。

+0

感謝您的回覆。你知道任何有助於我完成這個任務的教程嗎?我一直在努力,並且不太瞭解單詞文檔。 – Lam

+0

更新了我的答案... –

+0

謝謝你的幫助 – Lam