Not tested, but the following should work. You don't 'select' the cells if you work with ranges, and you can't use Word specific commands when late binding to Word in Excel - you must use their numeric equivalents, thus
Code:
Sub modifyHeader()
Dim wdApp As Object
Dim wdDoc As Object
Dim oTable As Object
Dim oCell As Object
Dim oRng As Object
Dim strFolder As String
With Application.FileDialog(msoFileDialogFolderPicker)
If .Show = -1 Then
strFolder = .SelectedItems(1)
End If
End With
If strFolder = "" Then
Exit Sub
End If
Set wdApp = CreateObject("Word.Application")
wdApp.Visible = False
strFile = Dir(strFolder & "\*.doc", vbNormal)
While strFile <> ""
Set wdDoc = wdApp.Documents.Open(FileName:=strFolder & "\" & strFile, AddToRecentFiles:=False, Visible:=False)
'delete existing header
Set oRng = wdDoc.Sections(1).Headers(wdHeaderFooterPrimary).Range
oRng.Text = ""
'add a table to header
Set oTable = wdDoc.Tables.Add _
(Range:=oRng, _
NumRows:=2, _
NumColumns:=2)
With oTable
.Range.Font.Bold = True
.Range.Font.Name = "Times New Roman"
.Range.Font.Size = 10
Set oCell = .Cell(1, 1).Range
oCell.End = oCell.End - 1
oCell.Text = "ABC-000"
Set oCell = .Cell(2, 1).Range
oCell.End = oCell.End - 1
oCell.Text = "Manufacturer"
Set oCell = .Cell(2, 2).Range
oCell.ParagraphFormat.Alignment = 2
oCell.End = oCell.End - 1
oCell.Text = "Page "
oCell.Collapse 0
wdDoc.Fields.Add Range:=oCell, Type:=33, Text:=" \* Arabic ", PreserveFormatting:=False
Set oCell = .Cell(2, 2).Range
oCell.End = oCell.End - 1
oCell.Collapse 0
oCell.Text = " of "
oCell.Collapse 0
wdDoc.Fields.Add Range:=oCell, Type:=26, PreserveFormatting:=False
End With
'Needed? - NO!
' ActiveDocument.ActiveWindow.View.Type = wdPrintView
' ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
' ActiveDocument.ActiveWindow.View.Type = wdPrintView
Application.DisplayAlerts = False
wdDoc.Close True
Application.DisplayAlerts = True
strFile = Dir()
Wend
Set wdDoc = Nothing
wdApp.Quit
Set wdApp = Nothing
MsgBox "Finished!"
End Sub