Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Программирование, связанное с MS Office > Как обработать макросом много файлов?


Автор: nikki4 11.2.2014, 12:58
Здравствуйте.
есть много файлов в rtf
надо к каждому применить макрос, vba совсем не знаю, но путем поиска и помощи на форумах удалось вот что найти:

макрос который нужно применить к файлам (удаление первой страницы если там есть keyword)
Код

Sub a_sect140211()
Dim s1, j1, j2, s2, s3
Dim obj As Object
Dim zm1, zm2
zm1 = "keyword"
zm2 = ".keyword."
Dim tbl As Table
''''''''''''''''''''''''''''
s1 = Word.ActiveDocument.Sections(1).Range.Text
If InStr(s1, zm1) > 0 Then
Debug.Print "1ok"
Word.ActiveDocument.Sections(1).Range.Delete
End If
'''''''''''''''''''''''''''''
j1 = Word.ActiveDocument.Sections(1).Headers.Count
Do While j1 > 0
Word.ActiveDocument.Sections(1).Headers(j1).Range.Select
If Selection.Tables.Count > 0 Then
Set tbl = Selection.Tables(1)
j2 = tbl.Range.Cells.Count
Do While j2 > 0
s1 = tbl.Range.Cells(j2).Range.Text
Debug.Print j1, j2, s1;
If InStr(s1, zm1) > 0 Or InStr(s1, zm2) > 0 Then
Debug.Print "**"
tbl.Range.Cells(j2).Range.Text = ""
End If
j2 = j2 - 1
Loop
End If
j1 = j1 - 1
Loop
''''''''''''''''''
j1 = Word.ActiveDocument.Sections(1).Footers.Count
Do While j1 > 0
Word.ActiveDocument.Sections(1).Footers(j1).Range.Select
If Selection.Tables.Count > 0 Then
Set tbl = Selection.Tables(1)
j2 = tbl.Range.Cells.Count
Do While j2 > 0
s1 = tbl.Range.Cells(j2).Range.Text
Debug.Print j1, j2, s1;
If InStr(s1, zm1) > 0 Or InStr(s1, zm2) > 0 Then
Debug.Print "**"
tbl.Range.Cells(j2).Range.Text = ""
End If
j2 = j2 - 1
Loop
End If
j1 = j1 - 1
Loop
  'ActiveWindow.ActivePane.View.Type = wdPrintView
  ActiveWindow.View.Type = wdPrintView
ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
 Selection.WholeStory

End Sub


а вот есть скрипт как узнал на vbs по удалению ссылок из всех файлов в папке:

Код

With CreateObject("word.application")
  For Each x In CreateObject("scripting.filesystemobject").getfile(wscript.scriptfullname).parentfolder.Files
    If LCase(Mid(x.Name, InStrRev(x.Name, ".") + 1, 4)) = "rtf" Then
      With .documents.open(x.Path)
        numDocs = numDocs + 1
        .Range.Fields.Unlink 'Ctrl+A, Ctrl+Shift+F9
        .Close True 'save changes
      End With
    End If
  Next
  .Quit
End With
wscript.echo "Обработано документов " & numDocs


пробовал 1 макрос вставить вместо
Код

   .Range.Fields.Unlink 'Ctrl+A, Ctrl+Shift+F9

но выдает ошибки всякие.. как правильно вставить тот макрос во второй?

Спасибо!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)