VBA Hatası 1004 - Uygulama Tanımlı veya Nesne Tanımlı Hata

Bu öğretici, VBA Hatası 1004- Uygulama Tanımlı veya Nesne Tanımlı Hatayı açıklayacaktır.

VBA çalışma zamanı hatası 1004, kod çalışırken oluşan Uygulama Tanımlı veya Nesne Tanımlı hata olarak bilinir. Kodlama hataları yapmak (Hata İşleme Kılavuzumuza bakın) VBA öğrenmenin bir parçasıdır ancak bir hatanın neden oluştuğunu bilmek, gelecekteki kodlamalarda hata yapmaktan kaçınmanıza yardımcı olur.

VBA Hatası 1004 - Nesne mevcut değil

Kodumuzdaki Range Name gibi tanımlanmamış bir nesneye atıfta bulunuyorsak, VBA kodu adı bulamayacağı için bu hata oluşabilir.

12345678 Alt CopyRange()Aralık Olarak Kopyalama DimAralık Olarak KopyalaCopyFrom = Sheets(1).Range("CopyFrom") olarak ayarlayınCopyTo = Sheets(1).Range("CopyTo") olarak ayarlayınCopyFrom.CopyCopyTo.PasteÖzel xlPasteValuesAlt Bitiş

Yukarıdaki örnek, "CopyFrom" adlı aralıktaki değerleri "CopyTo" adlı aralığına kopyalayacaktır - elbette bunların mevcut adlandırılmış aralıklar olması koşuluyla! Mevcut değillerse, Hata 1004 görüntülenecektir.

Yukarıdaki örnekte bu hatayı önlemenin en basit yolu, Excel çalışma kitabında aralık adları oluşturmak veya aralığa geleneksel satır ve sütun biçiminde başvurmaktır, örneğin: Aralık(“A1:A10”).

VBA Hatası 1004 - Ad Zaten Alınmış

Hata, bir nesneyi zaten var olan bir nesneyle yeniden adlandırmaya çalışıyorsanız da oluşabilir - örneğin, Sayfa1'i yeniden adlandırmaya çalışıyorsak ancak sayfaya verdiğiniz ad zaten başka bir sayfanın adıysa.

123 Alt AdÇalışma Sayfası()ActiveSheet.Name = "Sayfa2"Alt Bitiş

Halihazırda bir Sayfa2'ye sahipsek, o zaman hata oluşacaktır.

VBA Hatası 1004 - Bir Nesneye Yanlış Referans Verme

Hata, kodunuzdaki bir nesneye yanlış başvuruda bulunduğunuzda da ortaya çıkabilir. Örneğin:

12345678 Alt CopyRange()Aralık Olarak Kopya KopyalaAralık Olarak KopyalaCopyFrom = Aralık ("A1:A10") olarak ayarlayınCopyTo = Aralık ("C1:C10") olarak ayarlayınAralık(CopyFrom).KopyalaRange(CopyTo).PasteSpecial xlPasteValuesAlt Bitiş

Bu bize bir kez daha Hata 10004 verecek

Kodu düzeltin ve hata artık gösterilmeyecektir.

12345678 Alt CopyRange()Aralık Olarak Kopya KopyalaAralık Olarak KopyalaCopyFrom = Aralık ("A1:A10") olarak ayarlayınCopyTo = Aralık ("C1:C10") olarak ayarlayınCopyFrom.CopyCopyTo.PasteÖzel xlPasteValuesAlt Bitiş

VBA Hatası 1004 - Nesne Bulunamadı

Bu hata, bir çalışma kitabını açmaya çalıştığımızda ve çalışma kitabı bulunamadığında da ortaya çıkabilir - bu örnekte çalışma kitabı, bulunamayan nesnedir.

1234 Alt OpenFile()Çalışma Kitabı Olarak Dim wbSet wb = Workbooks.Open("C:\Data\TestFile.xlsx")Alt Bitiş

Hata kutusundaki mesaj farklı olsa da hata hala 1004.

wave wave wave wave wave