Страница: 1 |
Страница: 1 |
Вопрос: редактирование кода vb
Добавлено: 04.07.06 23:10
Автор вопроса: koljan
нужно сделать чтобы после каждого For в следующей строке ставилась табуляция ну и если есть вложенные FORы то больше табуляций
Sub basic()
Dim ot As Integer
Dim NEot As Integer
Dim MASpar(100) As Byte
Dim MASparOT(100) As Byte
Dim MASnepar(100) As Byte
Dim MASneparNEOT(100) As Byte
For i = 1 To ActiveDocument.Paragraphs.Count
If Trim(ActiveDocument.Paragraphs(i).Range.Words(1)) = "For" Then
ot = ot + 1
MASpar(ot) = i
MASparOT(i) = ot
End If
NEot = ot
If Trim(ActiveDocument.Paragraphs(i).Range.Words(1)) = "Next" Then
NEot = NEot - 1
If NEot < 0 Then NEot = 0
MASnepar(NEot) = i
MASneparNEOT(i) = NEot
End If
Next
For j = 1 To ActiveDocument.Paragraphs.Count
ActiveDocument.Paragraphs(j + 1).Range.Text = String(MASparOT(j), Chr(9)) + ActiveDocument.Paragraphs(j + 1).Range.Text
Next
End Sub
я вот сделал немного но ставиться только в одной строке после FOR
Ответы
Всего ответов: 2
Номер ответа: 1
Автор ответа:
SRV
ICQ: 254226129
Вопросов: 30
Ответов: 107
Профиль | | #1
Добавлено: 05.07.06 09:50
Попробуй использовать vbCrlf может покатит
Номер ответа: 2
Автор ответа:
koljan
Вопросов: 2
Ответов: 4
Профиль | | #2
Добавлено: 05.07.06 13:59
вопрос решён
Sub basic()
Dim ot As Integer
Documents.Open ("c:\temp\vba.doc"
Documents(1).Select
Selection.Copy
Documents(2).Range.Paste
Documents(2).Activate
ot = 0
For i = 1 To ActiveDocument.Paragraphs.Count
ActiveDocument.Paragraphs(i).Range.Words(1).Select
If Trim(ActiveDocument.Paragraphs(i).Range.Words(1)) = "For" Then
ot = ot + 1
End If
If Trim(ActiveDocument.Paragraphs(i).Range.Words(1)) = "Next" Then
ot = ot - 1
'ActiveDocument.Paragraphs(i + 1).Range.Text = String(ot, Chr(9)) + ActiveDocument.Paragraphs(i + 1).Range.Text
If ot < 0 Then
ot = 0
End If
End If
If Trim(ActiveDocument.Paragraphs(i).Range.Words(1)) = "For" Then
ActiveDocument.Paragraphs(i).Range.Text = String(ot - 1, Chr(9)) + ActiveDocument.Paragraphs(i).Range.Text
Else
ActiveDocument.Paragraphs(i).Range.Text = String(ot, Chr(9)) + ActiveDocument.Paragraphs(i).Range.Text
End If
If Trim(ActiveDocument.Paragraphs(i).Range.Words(1)) = "Next" Then
ActiveDocument.Paragraphs(i - 1).Range.Text = String(ot, Chr(9)) + ActiveDocument.Paragraphs(i - 1).Range.Text
End If
Next
End Sub