Runtime Error '91'

Katılım
13 Ekim 2005
Mesajlar
16
Herkese merhaba,

Makro yazmayı yavaş yavaş öğrendik ama bu seferde çıkan hatalrın ne anlama geldiğini bilmiyorum acaba bu kodları ne anlama geldiğini nasıl öğrenebilirim?

Gelelim asıl soruma:

Aşağıdaki makro ile hazırlanmış bir dosyam var ve makro çalıştırdıktan belli bir işlem sonra

Kod:
Run-time error '91':
Object variable or With Block variable not set
hatası mesajı veriyor. Hata olabilecek durumları engellemek için değişik yöntemlerde kullandım kodları bakarsanız göreceksiniz. Ama yine hata vermesi ve bu hatanın ne anlama geldiğini bilmediğimden dolayı takıldım. Acaba kodlara inceleyerek yada bana hata mesajının tam anlamını söyleyerek çözüm önerisinde bulunabilirmisiniz?

Şimdiden teşekkürler...

Kod:
Sub codeHVI768()
On Error GoTo 10
For x = 2 To 3945
MS = Sheets("Senet").Cells(x, 5).Value
'MsgBox MS
VD = Sheets("Senet").Cells(x, 2).Value
'MsgBox VD
Sheets("Sipariş").Select
    Cells.Find(What:=MS, After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
        xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
        , SearchFormat:=False).Activate
r = ActiveCell.Row
    Cells.Find(What:=VD, After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
        xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
        , SearchFormat:=False).Activate
c = ActiveCell.Column
Sheets("call").Range("C2").Value = Sheets("Senet").Cells(x, 12).Value
Set alan2 = Range("Sipariş!C3:C" & WorksheetFunction.CountA(Range("Sipariş!C1:C65000")))
ii = WorksheetFunction.CountIf(alan2, Sheets("Sipariş").Cells(r - 1, 3).Value)
For xx = 1 To ii
Sheets("call").Range("B2").Value = Sheets("Sipariş").Cells(r - xx, 12).Value
Sheets("call").Range("A2").Value = Sheets("Sipariş").Cells(r, 12).Value
Sheets("Sipariş").Cells(r - xx, c).Value = Sheets("call").Range("D2").Value
Next
30:
Next
GoTo 20
10:
y = WorksheetFunction.CountA(Range("HATA!A1:A65000")) + 1
Sheets("HATA").Cells(y, 1).Value = MS
Sheets("HATA").Cells(y, 2).Value = VD
GoTo 30
20:
End Sub
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Eğer kod içindeki "on error goto 10" satırını iptal edip kodu çalıştırırsanız hatanın olduğu satıra ulaşabilirsiniz. Hata "find" yani arama işleminin yapıldığı satırda aranan veri bulunamadığında ortaya çıkmaktadır. Bu hatayı engellemek için farklı çözümler üretilebilir ama en kolayı kodu en üstüne "on error resume next" satırını eklemektir ki siz zaten böyle bir satır eklemişsiniz.
 
Üst