Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / for each in ... next / 5 сообщений из 5, страница 1 из 1
29.10.2006, 18:39:43
    #34089526
levan82
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
for each in ... next
привет

for each с in activedocument.charactars

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

next c

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

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

заранее спасибо
...
Рейтинг: 0 / 0
29.10.2006, 22:53:56
    #34089713
whoismaikl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
for each in ... next
Не мог бы Ты скинуть весь код?
...
Рейтинг: 0 / 0
30.10.2006, 00:08:58
    #34089798
A.K.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
for each in ... next
Из вопроса непонятно, какая решается задача.
Но перебор в цикле всех символов документа настораживает. Подумайте, нельзя ли решить задачу по-другому, найти менее "лобовое" решение.
...
Рейтинг: 0 / 0
30.10.2006, 03:08:19
    #34089875
levan82
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
for each in ... next
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
30.10.2006, 03:16:25
    #34089878
levan82
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
for each in ... next
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
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / for each in ... next / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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