Vba: проблема с функцией

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
Volond
Сообщения: 1
Зарегистрирован: 12 дек 2006, 08:36

12 дек 2006, 16:04

Макрос должен по двум заданным значениям найти ячейку и скопировать
Но во втором цикле перебор не происходит
Sheets("Лист1").Select
Range("B1").Activate
For i = 1 To 100
If Range("B" & i) = Sheets("Лист2").Range("B2") Then
Sheets("Лист1").Select
For j = i To 40
If Range("J" & j) = "20.11.2006" Then
Range("J" & j).Copy
Sheets("CHERNOUS.KRD").Select
Range("a11").Activate
ActiveSheet.Paste
End If
Next j
End If
Next i
Аватара пользователя
Игорь Акопян
Сообщения: 1419
Зарегистрирован: 13 окт 2004, 17:11
Откуда: СПБ
Контактная информация:

12 дек 2006, 17:23

а зачем копировать значение "20.11.2006" из ячейки и вставлять его в другую, если можно тупо присвоить это значение?
[syntax="vb"]
sub qwe()
If ActiveCell.Find(Sheets("Лист1").Range("B2") then _
Sheets("CHERNOUS.KRD").Range("a11").Value = "20.11.2006"
end sub
[/syntax]
Изображение
Genyaa
Сообщения: 307
Зарегистрирован: 11 окт 2006, 17:24
Откуда: Moscow
Контактная информация:

12 дек 2006, 17:43

если во втором цикле в Range("J" & j) проверяется ячейка не с текстовым форматом, а с датой, определенно не срабатывает вот эта проверка:

If Range("J" & j) = "20.11.2006" Then

Попробуйте так:

If Range("J" & j).Value = DateValue("20/11/2006") Then
Всякое решение плодит новые проблемы.
Sokl
Сообщения: 449
Зарегистрирован: 12 сен 2005, 08:52
Откуда: ОМ

13 дек 2006, 05:37

&quot писал(а):Макрос должен по двум заданным значениям найти ячейку и скопировать
Должен, но не делает этого. Макрос "проверяет" есть ли в ячееках B1:B100 листа1 значение, равное значению ячейки B2 листа2, и если есть, то макрос "ищет" значение "20.11.2006" среди значений ячеек J1:J40 листа1, копирует значение "20.11.2006" на лист "CHERNOUS.KRD", а затем ошибочно продолжает поиск на листе "CHERNOUS.KRD". Наверное!
Ответить