powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / for each in ... next
5 сообщений из 5, страница 1 из 1
for each in ... next
    #34089526
levan82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
привет

for each с in activedocument.charactars

if .... then
c.text="f"
end if

next c

у меня вопрос насчет этого цикла

я использую его для изменения некоторых characters но каждый раз когда я что нибуд меняю цикл начинается с начала как это предотвротить

заранее спасибо
...
Рейтинг: 0 / 0
for each in ... next
    #34089713
whoismaikl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не мог бы Ты скинуть весь код?
...
Рейтинг: 0 / 0
for each in ... next
    #34089798
Фотография A.K.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Из вопроса непонятно, какая решается задача.
Но перебор в цикле всех символов документа настораживает. Подумайте, нельзя ли решить задачу по-другому, найти менее "лобовое" решение.
...
Рейтинг: 0 / 0
for each in ... next
    #34089875
levan82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
whoismaiklНе мог бы Ты скинуть весь код?

For j = 1 To activedocument.Paragraphs.Count
l = 0
Set ss = activedocument.Paragraphs(j).Range
Set n = ss.Characters(1)
i = 0
For Each c In ss.Characters

If c = ChrW(1) Then
GoTo r
End If
i = i + 1
If (c.Font.Name = n.Font.Name) And (c.Font.Size = n.Font.Size) And (c.Font.Bold = n.Font.Bold) And (c.Font.Italic = n.Font.Italic) And (c.Font.Color = n.Font.Color) Then
l = l + 1

Else

ts = ss.SetRange(t + i - l, t + i)

d = rang(ss, ss.Font.Name, ComboBox1.Value)
' rang - это функция из dll которая меняет содержимое ss другим текстом но
' количесиво символов остается темже

l = 1
End If

r:
Set n = c
Next c
t = t + i
ts = ss.SetRange(t - l, t - 1)

d = rang(ss, ss.Font.Name, ComboBox1.Value)

next j

одним словом я беру одинаковые по font.name, font.size, font.color и т д регион range и меняю его другими символами тогоже количества
но когда вызывается функция rang то есть меняется range - ss цыкл начинается с начала и все путается

етот код работфет нормально когда в место цикла
For Each c In ss.Characters
я использую
for i = 1 to ss.characters.count
ss.characters(i)
next i

но он слишком медленно работает
надеюсь понято обяснил свою проблему также как и надеюсь на вашу помошь
спасибо
...
Рейтинг: 0 / 0
for each in ... next
    #34089878
levan82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
whoismaiklНе мог бы Ты скинуть весь код?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
For j =  1  To activedocument.Paragraphs.Count
l =  0 
Set ss = activedocument.Paragraphs(j).Range
Set n = ss.Characters( 1 )
i =  0 
For Each c In ss.Characters

If c = ChrW( 1 ) Then
GoTo r
End If
i = i +  1 
If (c.Font.Name = n.Font.Name) And (c.Font.Size = n.Font.Size) And (c.Font.Bold = n.Font.Bold) And (c.Font.Italic = n.Font.Italic) And (c.Font.Color = n.Font.Color) Then
l = l +  1 

Else

ts = ss.SetRange(t + i - l, t + i)

d = rang(ss, ss.Font.Name, ComboBox1.Value)
' rang - это функция из dll которая меняет содержимое ss другим текстом но 
' количесиво символов остается темже

l =  1 
End If

r: 
Set n = c
Next c
t = t + i
ts = ss.SetRange(t - l, t -  1 )

d = rang(ss, ss.Font.Name, ComboBox1.Value)

next j



одним словом, я беру одинаковые по font.name, font.size, font.color и т д регион range и меняю его другими символами, тогоже количества.
но когда вызывается функция rang, то есть меняется range - ss, цыкл начинается с начала и все путается.

этот код работфет нормально когда в место цикла
Код: plaintext
For Each c In ss.Characters
я использую
Код: plaintext
1.
2.
for i =  1  to ss.characters.count
ss.characters(i)
next i
но он слишком медленно работает
надеюсь понято обяснил свою проблему, также как и надеюсь на вашу помошь
спасибо
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / for each in ... next
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]