Страницы: 1
RSS
VBA Find
 
Всем привет! Взял код из справки F1 по Find  
 
Sub CheckBox1_Click()  
With Range("a1:a500")  
   Set c = Rows.Find(TextBox1.Text, LookIn:=xlValues)  
   If Not c Is Nothing Then  
       firstAddress = c.Address  
       Do  
           Cells(c, 2).Value = CheckBox1.Value  
           Set c = .FindNext©  
       Loop While Not c Is Nothing And c.Address <> firstAddress  
   End If  
End With  
End Sub  
 
Зараза работает только с числами, а как только видит текст - выбивает ошибку на строке Cells(c, 2).Value = CheckBox1.Value. Помогите разобраться, пожалуйста.
 
Спасибо, так работает.  
Мне почему-то казалось, что Set c = Rows.Find... уже делает "с" номером найденой строки
 
"Set c" не может делать номером. Он делает ячейкой :)  
Т.е. присваивает переменной ссылку на объект. А у объекта есть и номер строки, и колонки, и значение, и т.д. и т.п.  
И кстати Cells(c, 2).Value  - это вероятно было Cells(c.Value , 2).Value, т.е если бы в найденной ячейке был 0, то тоже была бы ошибка.
 
{quote}{login=Baklanoff}{date=08.02.2012 04:00}{thema=VBA Find}{post}  
   Set c = Rows.Find(TextBox1.Text, LookIn:=xlValues)  
{/post}{/quote}  
 
кстати, вот в этой строчке, скорее всего, не хватает точки перед Rows  
т.к. в With стоит диапазон A1:A500, то это может до поры до времени не глючить  
но иногда сможет повлечь проблемы, неожиданные для ТС.
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
Страницы: 1
Наверх