|
如题:在WORD中选中某段落(可能是一个段落或者多个段落),然后自动另起一段插入固定的一句话。
小弟为了写标书的逐项应答方便点,想弄个VBA试试。就是招标文件的所有内容,每个有效内容都需要另起一段写上"应答:满足。我方满足上述招标要求。"这句话。
问题来了:
1.当只选中一个段落的时候,无法执行命令,没有任何反应;
2.选中多个段的时候,如果选中段落的最后一个的下一个是个标题行,那么选中的最后一段生成的那个文字"应答:满足。我方满足上述招标要求。"会带有下一个标题行的格式(就是层级啊等等)。
求各位大佬给改进下,或者重新给写个合适的也行。
- Sub 点对点应答()
- If Selection.Type = wdSelectionIP Then MsgBox "请鼠标选择!": Exit Sub
- Dim w
- w = "应答:满足。我方满足上述招标要求。"
- Set p = Selection.Range: Set r = p.Duplicate
- With p.Find
- MsgBox "这里错了!"
- Do While .Execute("(*)^13(*)", , , 1)
- If Not p.InRange(r) Then Exit Do
- With p
- .InsertAfter w & vbCr
- .Paragraphs(2).Range.ListFormat.RemoveNumbers
- .Start = .End
- End With
- Loop
- End With
- Selection.Find.ClearFormatting
- Selection.Find.Replacement.ClearFormatting
- Selection.Find.Replacement.Font.Bold = True
- With Selection.Find.Replacement.ParagraphFormat
- .SpaceBeforeAuto = False
- .SpaceAfterAuto = False
- .FirstLineIndent = CentimetersToPoints(0.74)
- .CharacterUnitFirstLineIndent = 2
- .WordWrap = True
- End With
- With Selection.Find
- .Text = "应答:满足。我方满足上述招标要求。"
- .Replacement.Text = "应答:满足。我方满足上述招标要求。"
- .Forward = True
- .Wrap = wdFindContinue
- .Format = True
- .MatchCase = False
- .MatchWholeWord = False
- .MatchByte = True
- .MatchWildcards = False
- .MatchSoundsLike = False
- .MatchAllWordForms = False
- End With
- Selection.Find.Execute Replace:=wdReplaceAll
- End Sub
复制代码
|
|