2015-04-30 3 views
0

Я начал с базового макроса, чтобы найти какие-либо патроны в моем документе и добавил к нему, записав макрос, который применил бы стиль нашей компании. Однако мне трудно вставить цикл и продолжать получать сообщение об ошибке.Добавить цикл в форматирование пули

Есть ли простой способ очистить это и пропустить весь документ?

Sub FindAndReplacewithCompanyBullet() 

Application.Run MacroName:="FindBullet" 
Selection.Style = ActiveDocument.Styles("Company Bullet List") 
With Selection.ParagraphFormat 
    .SpaceBeforeAuto = False 
    .SpaceAfterAuto = False 
    .FirstLineIndent = InchesToPoints(-0.38) 
End With 
With Selection.ParagraphFormat 
    .LeftIndent = InchesToPoints(0.44) 
    .SpaceBeforeAuto = False 
    .SpaceAfterAuto = False 
End With 
With Selection.ParagraphFormat 
    .SpaceBeforeAuto = False 
    .SpaceAfterAuto = False 
    .FirstLineIndent = InchesToPoints(-0.31) 
End With 
With Selection.ParagraphFormat 
    .LeftIndent = InchesToPoints(0.31) 
    .SpaceBeforeAuto = False 
    .SpaceAfterAuto = False 
End With 
    With Selection.ParagraphFormat 
    .SpaceBeforeAuto = False 
    .SpaceAfterAuto = False 
    .FirstLineIndent = InchesToPoints(-0.18) 
End With 
Next Para 
End Sub 
+0

Что, что 'Nest Para'? –

ответ

0

Я думаю, что вы хотите:

Dim values(3,2) As Single, I as Integer 
values(1,1) = -0.38 
values(1,2) = 0.44 
values(2,1) = -0.31 
values(2,2) = 0.44 
values(3,1) = -0.18 
values(3,2) = 0 

For i = 1 To 3 
    With Selection.ParagraphFormat 
     .SpaceBeforeAuto = False 
     .SpaceAfterAuto = False 
     .FirstLineIndent = InchesToPoints(values(i,1)) 
     If values(i,2) <> 0 Then 
      .LeftIndent = InchesToPoints(values(i,2)) 
     End If 
    End With 
Next i 
+0

Я продолжаю получать «Ошибка времени выполнения» 9: «Подстрочный вне диапазона» для строки, которая говорит «.FirstLineIndent = InchesToPoints (значения (2, I))». Как я могу это исправить? Спасибо. –

+0

@CatherineCombs Это была моя ошибка, проверьте новый код;). –