2014-11-04 2 views
0

Я надеюсь найти решение (будь то VBA или нет) по моей проблеме. У меня есть документ Word со связанными в нем таблицами Excel. Все ссылки работают правильно, но я должен вручную открыть документ Word, чтобы он обновлялся с данными Excel. Причина, по которой я использую Word вместо Excel, объясняется большим количеством текста.VBA, чтобы открыть документ Word и обновить ссылки

Есть ли способ, которым я мог бы программировать какой-то код, который будет проходить через все документы Word в папке, открыть каждый документ, обновить все ссылки, сохранить документ и перейти к следующему?

Вот что я до сих пор

Sub OpenFiles() 
Dim MyFolder As String 
Dim MyFile As String 

MyFolder = "LOCATION" 
MyFile = Dir(MyFolder & "\*.docx") 

Do While MyFile <> "" 
    Documents.Open Filename:=MyFolder & "\" & MyFile 
    MyFile = Dir 
Loop 

End Sub 

UPDATE

Хорошо я был в состоянии сделать открытые файлы командной работы! Теперь я пытаюсь переписать/сохранить файл и закрыть его.

Сообщение об ошибке: Объект Обязательный

Sub OpenFiles() 
Dim MyFolder As String 
Dim MyFile As String 
Dim objWord As Object 

Set objWord = CreateObject("Word.Application") 
objWord.Visible = True 
MyFolder = "LOCATION" 
MyFile = Dir(MyFolder & "\*.docx") 
Do While MyFile <> "" 
objWord.Documents.Open Filename:=MyFolder & "\" & MyFile 

Application.DisplayAlerts = False 
ActiveDocument.SaveAs Filename:=MyFile 
Application.DisplayAlerts = True 

MyFile = Dir 
Loop 
End Sub 
+0

Да, есть способ. Почему бы вам не дать ему выстрел, что вы пробовали. Мы поможем с любыми ошибками, но мы не будем делать это с нуля. –

+0

Спасибо, @ jbarker2160. Я разместил его выше. – amy6409

+0

вам нужно сообщить нам, какую точную ошибку вы получаете, и по какой строке. –

ответ

0

Вы можете попробовать любой из ниже:

Dim objDoc As Object 
Do While Myfile <> "" 
    Set objDoc = objWord.Documents.Open(Filename:=MyFolder & "\" & MyFile) 
    objDoc.Save '~~> Save 
    objDoc.Close '~~> Close 
    Myfile = Dir 
Loop 

Или вы можете просто использовать Закрыть метод как это.

objDoc.Close True '~~> close with SaveChanges argument set to True