2016-03-23 4 views
1

Из excel VBA я добавляю горизонтальную линию в заголовок документа Word.VBA, EXCEL, WORD: форматирование горизонтальной линии из Excel в заголовке Word

Dim a As Word.Range 
Set a = oWord.ActiveDocument.Sections(1).headers(wdHeaderFooterPrimary).Range 
a.Collapse Direction:=wdCollapseEnd 
a.InlineShapes.AddHorizontalLineStandard 

Далее я хочу отформатировать эту строку:

a.InlineShapes(1).Height = 1 

Но броски и ошибки 5941 - Запрашиваемый член коллекции не существует.

Я также попытался

With a.InlineShapes.AddHorizontalLineStandard 
    .Height = 1 
End With 

Но не работало ни.

Я пробовал код в Word vba, который работал. Я что-то упустил? Как форматировать строку из Excel?

Редактировать

Я остановил код после добавления строки. Затем я выполнил .InlineShapes.Count, который вернул 0. Затем я добавил строку в тело документа и выполнил ее снова, затем вернул 1. Таким образом, проблема заключается в том, что заголовок не может быть доступен из Excel?

ответ

1

Попробуйте следующее, который использует объект InlineShape «держать» линию вы добавляете, так что вы можете обратиться непосредственно. Я не могу понять, почему то, что у вас есть, не работает, но если это не сработает, оно может по крайней мере дать вам более информативное сообщение об ошибке:

Dim rng As word.Range 
Dim ils As word.InlineShape 

Set rng = oWord.ActiveDocument.Sections(1).Headers(wdHeaderFooterPrimary).Range 
rng.Collpase Direction:=wdCollapseEnd 
Set ils = rng.InlineShapes.AddHorizontalLineStandard(rng) 
ils.height = 1 
1

Попробуйте это:

Dim a As Object 
Set a = GetObject(, "Word.Application") 
With a.ActiveDocument.Sections(1).headers(wdHeaderFooterPrimary) 
    .Range.InlineShapes.AddHorizontalLineStandard.Height = 1 
End With         
Смежные вопросы