Цикл For Each

Программирование на Visual Basic for Applications
DIMAIVANOV
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 29.03.2006 (Ср) 3:08

Цикл For Each

Сообщение DIMAIVANOV » 21.06.2006 (Ср) 7:40

При использовании For Each, операторы для первого элемента
выполняются дважды:
Код: Выделить всё
Dim Sht As Worksheet
For Each Sht In ActiveWorkbook.Worksheets
Range("IT2:IT45").Value=Range("IT1").Value
Dim p As integer
For p=1 To 800
   If Sheets("1").Cells(p,3)="" Then
Union(Range("A1:B45"), Range("IS1:IS45"), Range("IT1:IT45")).Copy _
Sheets("1").Cells(p,3)
Exit For
End If
Next
Sht.Activate
Next

Заранее спасибо

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 21.06.2006 (Ср) 8:53

А надо уточнять, где sheets.
Вместо activate.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

DIMAIVANOV
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 29.03.2006 (Ср) 3:08

Сообщение DIMAIVANOV » 21.06.2006 (Ср) 19:15

Указать имя книги ?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 22.06.2006 (Чт) 3:12

Указать sht. переж каждым range внутри цикла.
А activate убрать.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 54

    TopList