2014-02-14 2 views
0

Должно быть, я исчерпал все свои вопросы за 2 дня. Но вот еще один.Obj Var или с блоком Var Не задано

У меня есть код, с которым мне кто-то помог, и я получаю ошибку Object Variable.

Dim firstAddress As String 
Dim c As Range 
Dim rngToDelete As Range 

With Worksheets(5).Range("c1:c1500") 
    Set c = .Find("-", LookIn:=xlValues) 
    If Not c Is Nothing Then 
     firstAddress = c.Address 
     Do 
      If rngToDelete Is Nothing Then 
       Set rngToDelete = c 
      Else 
       Set rngToDelete = Union(rngToDelete, c) 
      End If 
      Set c = .FindNext(c) 
      If c Is Nothing Then Exit Do 
     Loop While c.Address <> firstAddress 
    End If 
End With 

If rngToDelete Is Nothing Then rngToDelete.EntireRow.Delete 

Он блокирует в последнюю rngToDelete.EntireRow.Delete

Не знаю, почему, может только думать, что, возможно, придется что-то делать с тем, что нет «-» было найдено.

Помогите пожалуйста.

+0

Не уверен, что вы пытаетесь удалить здесь, но как только вы не можете найти «-» (т.е. с не что иное), rngToDelete не определено, и, таким образом, возникает ошибка. – Alex

+0

Вот что я понял, есть ли у вас какие-либо предложения о том, как исправить это, если нет? – SASUSMC

+0

Если вы хотите удалить каждую строку, найденную с помощью «-», я думаю, что у ученика Гэри есть ответ ~ – Alex

ответ

2

Вы должны полностью изменить логику:

If Not rngToDelete Is Nothing Then rngToDelete.EntireRow.Delete 
Смежные вопросы