Копирование при сравнении

Программирование на Visual Basic for Applications
Luda
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 24.11.2004 (Ср) 5:07

Копирование при сравнении

Сообщение Luda » 24.11.2004 (Ср) 5:22

Подскажите пожалуйста как сделать и в какой процедуре: есть 2 листа в excel в 5 столбце на первом листе стоят даты, если какая либо из этих дат совпадает с датой сегодняшней, то копируем строку с этой датой в первую незаполненную строчку второго листа, я только начала осваивать Vba, пока не очень успешно.
Всем спасибо

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

Сообщение GSerg » 24.11.2004 (Ср) 5:29

Код: Выделить всё
dim i as long
for i=1 to worksheets("Лист1").usedrange.rows.count
  if worksheets("Лист1").cells(i,5).value=date then worksheets("Лист1").cells(i,5).entirerow.copy worksheets("Лист2").cells(worksheets("Лист2").usedrange.rows.count+1,1)
next
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Luda
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 24.11.2004 (Ср) 5:07

не получается

Сообщение Luda » 24.11.2004 (Ср) 8:39

Что-то не получается так, не вставляет на второй лист ничего, а почему когда вместо = ставлю <= выдает ошибку Subscript out of range

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

Сообщение GSerg » 24.11.2004 (Ср) 10:21

А точно столбец 5 содержит даты, причём именно в формате даты?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Luda
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 24.11.2004 (Ср) 5:07

Сообщение Luda » 24.11.2004 (Ср) 10:41

Да, абсоютно точно точно, когда пошагово выполняешь, то проверяет условие и сразу на Next перескакивает, и похоже зацикливается, прогоняет все записи и снова начинает проверять с первой,

AndreyV
Начинающий
Начинающий
 
Сообщения: 24
Зарегистрирован: 13.02.2004 (Пт) 16:16

Сообщение AndreyV » 24.11.2004 (Ср) 11:58

попробуйте так
Dim i As Long
For i = 1 To Worksheets("Лист1").UsedRange.Rows.Count
If Worksheets("Лист1").Cells(i, 5).Value = Format(Date, "dd.mm.yyyy") Then
Worksheets("Лист1").Rows(i).Copy Worksheets("Лист2").Rows(Worksheets("Лист2").Cells.SpecialCells(xlCellTypeLastCell).Row + 1)
End If
Next

Luda
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 24.11.2004 (Ср) 5:07

Сообщение Luda » 01.12.2004 (Ср) 4:27

Все вроде работает нормально, кроме одного вставляет нужные строки куда попало, а не в первую непустую строку на листе 2

Luda
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 24.11.2004 (Ср) 5:07

Сообщение Luda » 01.12.2004 (Ср) 4:35

описка: в первую пустую строку


Вернуться в VBA

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

Сейчас этот форум просматривают: Google-бот и гости: 86

    TopList