Копирование строк с определенной заливкой

Программирование на Visual Basic for Applications
sonata
Постоялец
Постоялец
 
Сообщения: 321
Зарегистрирован: 31.07.2002 (Ср) 13:18
Откуда: Russia

Копирование строк с определенной заливкой

Сообщение sonata » 28.10.2003 (Вт) 14:48

Проблема в том, что эта процедура не копирует нужные строчки...
А как сделать так, чтобы она копировала?

В чем ошибка?Никак не могу понять...

Код: Выделить всё
Sub Копирование_с_условием()
'
' Копирование строк с определенной заливкой

For i = 1 To 2000

Rows(i).Select
j = 1
If (Selection.Interior.ColorIndex = 7) Then
      Selection.Copy
    Sheets("Лист2").Select
Rows(j).Select
ActiveSheet.Paste
j = j + 1
End If
Next
End Sub

corgi
ToyMan
ToyMan
 
Сообщения: 1367
Зарегистрирован: 01.10.2002 (Вт) 9:59
Откуда: Россия, Москва

Сообщение corgi » 28.10.2003 (Вт) 14:56

а так :?: :)
Код: Выделить всё
Sub Копирование_с_условием()
'
' Копирование строк с определенной заливкой

j = 1
For i = 1 To 2000

Rows(i).Select
If (Selection.Interior.ColorIndex = 7) Then
      Selection.Copy
      Sheets("Лист2").Select
      Rows(j).Select
      ActiveSheet.Paste
      j = j + 1
End If
Next
End Sub
Ничто так не ограничивает полёт мысли программиста, как компилятор

sonata
Постоялец
Постоялец
 
Сообщения: 321
Зарегистрирован: 31.07.2002 (Ср) 13:18
Откуда: Russia

Сообщение sonata » 28.10.2003 (Вт) 15:18

А так копирует только одну строчку...

corgi
ToyMan
ToyMan
 
Сообщения: 1367
Зарегистрирован: 01.10.2002 (Вт) 9:59
Откуда: Россия, Москва

Сообщение corgi » 28.10.2003 (Вт) 15:23

да надо было проверить :cry:
Код: Выделить всё
Sub Копирование_с_условием()
'
' Копирование строк с определенной заливкой
j = 1
For i = 1 To 2000
If (Rows(i).Interior.ColorIndex = 7) Then
      Rows(i).Copy
      Sheets("Лист2").Select
      Sheets("Лист2").Rows(j).Select
      ActiveSheet.Paste
      Sheets("Лист1").Select
      j = j + 1
End If
Next
End Sub
Ничто так не ограничивает полёт мысли программиста, как компилятор

sonata
Постоялец
Постоялец
 
Сообщения: 321
Зарегистрирован: 31.07.2002 (Ср) 13:18
Откуда: Russia

Сообщение sonata » 28.10.2003 (Вт) 15:49

:shock: Да, так-все СУПЕР!!!
Получается, дело было только в том, чтобы лишний раз обращаться к имени листа....

corgi
ToyMan
ToyMan
 
Сообщения: 1367
Зарегистрирован: 01.10.2002 (Вт) 9:59
Откуда: Россия, Москва

Сообщение corgi » 28.10.2003 (Вт) 15:54

да и еще надо было j=1 вынести за пределы for чтобы каждый раз j не "обнулялась"
Ничто так не ограничивает полёт мысли программиста, как компилятор


Вернуться в VBA

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

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

    TopList