Как сохранить активный документ «Word» в VBScript? - PullRequest
1 голос
/ 21 февраля 2011

Здесь у меня есть небольшой VBS-скрипт, который помогает мне добавить новую строку в таблицу в MS "Word" 2003:

Set wd = CreateObject("Word.Application")

wd.Visible = True

Set doc = wd.Documents.Open ("c:\addtotable.doc")

Set r = doc.Tables(1).Rows.Add

aa = Split("turtle,dog,rooster,maple", ",")

For i = 0 To r.Cells.Count - 1
  r.Cells(i + 1).Range.Text = aa(i)
Next

Работает нормально, но ничего не спасает. Я хочу сохранить выполненные изменения.

Методом макросъемки в «Word» я получил эту макрокоманду, которая сохраняет активный документ «Word»:

ActiveDocument.Save

Итак, я решил добавить этот макрос в скрипт VBS выше:

 Set wd = CreateObject("Word.Application")

    wd.Visible = True

    Set doc = wd.Documents.Open ("c:\addtotable.doc")

    Set r = doc.Tables(1).Rows.Add

    aa = Split("turtle,dog,rooster,maple", ",")

    For i = 0 To r.Cells.Count - 1
      r.Cells(i + 1).Range.Text = aa(i)
    Next

     ActiveDocument.Save

Но это ничего не спасает. Что я здесь не так делаю?

Ответы [ 2 ]

4 голосов
/ 21 февраля 2011

Вы уже пытались позвонить doc.Save после внесения этих изменений? Если это не сработает:

Проблема в том, что ActiveDocument автоматически не ссылается на то, что вы думаете, что он делает в VBScript, как это происходит в Word VBA.

Попробуйте установить новую переменную для активного документа, например так:

Dim activeDoc
Set activeDoc = wd.ActiveDocument
activeDoc.Save
2 голосов
/ 21 февраля 2011

Я думаю, вы должны использовать ActiveDocument.SaveAs("C:\addtotable.doc");, потому что я не могу найти документацию для .Save. SaveAs принимает второй параметр, который указывает, в каком формате его сохранять. Вставить параметры здесь .

...