Подскажите что делать:
Задача такая: нужно найти в тексте абзацы в начале которых стоят 3 пробела и заглавная русская буква, далее нужно заменить пробелы символом #.
Первую часть задания я выполнил, вот пример кода:
Sub ПроверкаНачалаСтрок()
Dim I As Long, s As Variant
For I = 1 To ActiveDocument.Paragraphs.Count
s = ActiveDocument.Paragraphs(I)
If Mid(s, 1, 3) = " " Then
If Asc(Mid(s, 4, 1)) > 192 And Asc(Mid(s, 4, 1)) < 224 Then
' ??????????????????????????????????
End If
End If
Next
End Sub
А вот заменить пробелы не получается, подскажите как это сделать.
Спасибо!
Замена текста средствами VBA
Модератор: Naeel Maqsudov
- EducatedFool
- Сообщения: 197
- Зарегистрирован: 06 апр 2008, 14:03
- Откуда: Россия, Урал
- Контактная информация:
Код: Выделить всё
[color=darkblue]Sub[/color] test()
[color=darkblue]With[/color] ActiveDocument.Range.Find
.Text = " ([A-ZА-ЯЁ])"
.MatchWildcards = [color=darkblue]True[/color]
.Wrap = wdFindContinue
.Replacement.Text = "###\1"
.Execute Replace:=wdReplaceAll
[color=darkblue]End[/color] [color=darkblue]With[/color]
[color=darkblue]End[/color] [color=darkblue]Sub[/color]
Макросы для Excel, Word, CorelDRAW. Быстро, профессионально, недорого. http://ExcelVBA.ru/
Благодарности принимаются на кошелёк WebMoney: R318574877619 и Яндекс.Деньги: 41001335672216
Благодарности принимаются на кошелёк WebMoney: R318574877619 и Яндекс.Деньги: 41001335672216
Но так будет происходить замена по всему тексту, а мне нужно только в начале абзацев (ActiveDocument.Paragraphs)
- EducatedFool
- Сообщения: 197
- Зарегистрирован: 06 апр 2008, 14:03
- Откуда: Россия, Урал
- Контактная информация:
Тогда так:
Код: Выделить всё
[color=darkblue]Sub[/color] test()
[color=darkblue]With[/color] ActiveDocument.Range.Find
.Text = [B][color="Red"]Chr(13)[/color][/B] & " ([A-ZА-ЯЁ])"
.MatchWildcards = [color=darkblue]True[/color]
.Wrap = wdFindContinue
.Replacement.Text = [B][color="#ff0000"]Chr(13)[/color][/B] & "###\1"
.Execute Replace:=wdReplaceAll
[color=darkblue]End[/color] [color=darkblue]With[/color]
[color=darkblue]End[/color] [color=darkblue]Sub[/color]
Макросы для Excel, Word, CorelDRAW. Быстро, профессионально, недорого. http://ExcelVBA.ru/
Благодарности принимаются на кошелёк WebMoney: R318574877619 и Яндекс.Деньги: 41001335672216
Благодарности принимаются на кошелёк WebMoney: R318574877619 и Яндекс.Деньги: 41001335672216
- Aent
- Сообщения: 1129
- Зарегистрирован: 01 окт 2006, 14:52
- Откуда: Saratov,Russia
- Контактная информация:
Так что [А-Z] в образце лишние. Кроме того, необходимо дополнительноVistaSV30 писал(а):3 пробела и заглавная русская буква
проверять первый абзац
Код: Выделить всё
With ActiveDocument.Paragraphs(1)
If mid$(.Range,1,4) like " [А-ЯЁ]" then
With .Range
.Characters(1) ="#"
.Characters(2) ="#"
.Characters(3) ="#"
End with
End if
End with
Андрей Энтелис,
aentelis.livejournal.com
aentelis.livejournal.com
Спасибо заработало!!! ))))