Я хочу обновить все перекрестные ссылки в существующем Word Document с помощью приложения VB.net.Обновление перекрестных ссылок Word с использованием VB.NET
Например, мое слово документ (.docm) (я пишу комментарии между/- -/для понимания):
Моего названия документа: ТЕСТ НА ОБНОВЛЕНИЕ
/- это название в зАКЛАДКИ назвал "TITLE1" -/
заголовок документа: {REF TITLE1 \ ч}
/- {REF TITLE1 \ ч} код для перекрестной ссылки, которая ссылается на закладку "title1" -/
/- Этот текст находится в заголовке моего документа -/
Я использую приложение VB.net изменить название документа:
Ниже мой код:
Imports Microsoft.Office.Interop
Public Sub UpdateWord()
Dim oWord As Word.Application
Dim oDoc As Word.Document
'Start Word and open the document template.
oWord = CreateObject("Word.Application")
oWord.Visible = False
oDoc = oWord.Documents.Open(Path_Word_Document)
oDoc.Bookmarks.Item("TITLE1").Range.Text = "My New Title"
oWord.Documents.Save()
oWord.Documents.Close()
oWord.Quit()
End Sub
Когда я запускаю этот подпункт, мой заголовок документа обновляется, но перекрестные ссылки сохранить старое значение заголовка ,
Знаете ли вы, что мне нужно сделать, чтобы обновить перекрестную ссылку в моем подразделении VB.net.
Благодаря
Я использую MS Word 2010, Visual Studio 2010 (.NET Framework 3.5) на Win7.
Из этого кода мне не ясно, что вы хотите сделать. Вы открываете существующий файл и намереваетесь обновлять его ссылки? Но почему они не работают? Как вы можете видеть в этой ссылке (http://stackoverflow.com/questions/14299292/update-word-ref-microsoft-office-interop-word), Fields.Update предназначен для другой цели: создания данной ссылки и " пусть он начнет работать ». Не могли бы вы подробно рассказать о конкретной проблеме (работают ли ссылки, если вы открываете файл вручную, например?). – varocarbas
Я меняю объяснения. Надеюсь, эта модификация поможет вам понять мою проблему. Если, вручную, я открываю документ с моим текстом, и я выбираю перекрестную ссылку, и я нажимаю F9, обновление работает. – Chalumeau
Как показано в вышеупомянутой ссылке, в этих условиях (добавление заданной закладки во время выполнения) 'oDoc.Fields.Update()' должно работать. Вы говорите, что если вы напишете эту строку прямо под 'oDoc.Bookmarks.Item (« TITLE1 »). Range.Text =« My New Title »;' закрыть приложение и открыть документ Word вручную, он не обновляется? Вы пробовали написать 'oDoc.Save'? – varocarbas