runtime error 1004 hatası ve çözümü

4 dk okuma süresi

runtime error 1004 hatası ve çözümü runtime error 1004 hatası, Microsoft Excel kullanıcılarını etkilediği bilinen Microsoft Visual Basic ile ilgili bir hata kodudur. Microsoft’un bilgisayarlar için popüler çalışma sayfası uygulamasının hiçbir sürümü runtime error 1004 hatası (Çalışma zamanı hatası 1004) olan tehditten güvenli olmamasına rağmen, hatanın en çok Excel 2003 ve Excel 2007’de olduğu bilinmektedir. Çalışma zamanı hatası 1004’ün iki farklı varyasyonu. Bütünüyle, runtime error 1004 hatası iki varyasyonu şu şekildedir:

  • runtime error 1004 hatası ‘1004’:
  • Çalışma Sayfası Sınıfının Kopyalama Yöntemi başarısız oldu ”
  • Uygulama tanımlı veya nesne tanımlı hata ”

Hata kodu aynı kalsa da gördüğünüz hata mesajı da birkaç durumda biraz değişebilir. Ancak, sorunun hangi sürümüyle karşılaşırsanız karşılaşın, neredeyse her zaman Excel’de çalışma sayfalarını kopyalamak ve ardından kopyaları orijinal çalışma sayfasıyla aynı çalışma kitabına yerleştirmek üzere tasarlanmış bir makro çalıştırılırken oluşur.

Orada en kötü teknik sorunların aksine, Microsoft Excel içinde runtime error 1004 hatasının nedeni bilinmektedir. runtime error 1004 hatası, çalıştırdığınız makro özgün çalışma sayfasını, makroyu çalıştırmadan önce kaydetmediğiniz ve kapatmadığınız tanımlanmış bir ada sahip bir çalışma kitabına kopyalandığında oluşur. Böyle bir makro örneği aşağıdaki kodda görülebilir.

Sub CopySheetTest()
    Dim iTemp As Integer
    Dim oBook As Workbook
    Dim iCounter As Integer
    
    ' Create a new blank workbook:
    iTemp = Application.SheetsInNewWorkbook
    Application.SheetsInNewWorkbook = 1
    Set oBook = Application.Workbooks.Add
    Application.SheetsInNewWorkbook = iTemp
    
    ' Add a defined name to the workbook
    ' that RefersTo a range:
    oBook.Names.Add Name:="tempRange", _
        RefersTo:="=Sheet1!$A$1"
            
    ' Save the workbook:
    oBook.SaveAs "c:\test2.xls"
    
    ' Copy the sheet in a loop. Eventually,
    ' you get error 1004: Copy Method of
    ' Worksheet class failed.
    For iCounter = 1 To 275
        oBook.Worksheets(1).Copy After:=oBook.Worksheets(1)        
    Next
End Sub

Microsoft Excel bağlamında runtime error 1004 hatası nedeni olduğu gibi çözüm de biliniyor. Bu soruna yönelik bir çözüme ek olarak, bundan etkilenen kullanıcılar için de mevcut olan, çözümün çalışmadığı veya uygun bir çözüm olarak çözüm bulamadığı durumlarda kullanılabilecek bir çözümdür.

runtime error 1004 hatanın çözümü

Bu özel sorunun çözümü, çalıştırdığınız makronun kodunu, çalışma sayfalarının kopyalarını oluştururken hedef çalışma kitabını düzenli olarak kaydetmesi ve kapatması için düzenlemektir. Bunu yapan bir makronun kodu, aşağıdakilerin çizgileri boyunca gibi görünür.

Sub CopySheetTest()
    Dim iTemp As Integer
    Dim oBook As Workbook
    Dim iCounter As Integer
    
    ' Create a new blank workbook:
    iTemp = Application.SheetsInNewWorkbook
    Application.SheetsInNewWorkbook = 1
    Set oBook = Application.Workbooks.Add
    Application.SheetsInNewWorkbook = iTemp
    
    ' Add a defined name to the workbook
    ' that RefersTo a range:
    oBook.Names.Add Name:="tempRange", _
        RefersTo:="=Sheet1!$A$1"
            
    ' Save the workbook:
    oBook.SaveAs "c:\test2.xls"
    
    ' Copy the sheet in a loop. Eventually,
    ' you get error 1004: Copy Method of
    ' Worksheet class failed.
    For iCounter = 1 To 275
        oBook.Worksheets(1).Copy After:=oBook.Worksheets(1)
        'Uncomment this code for the workaround:
        'Save, close, and reopen after every 100 iterations:
        If iCounter Mod 100 = 0 Then
            oBook.Close SaveChanges:=True
            Set oBook = Nothing
            Set oBook = Application.Workbooks.Open("c:\test2.xls")
        End If
    Next
End Sub

Not: Kopyaların kaydedildiği çalışma kitabını kaydetmeniz ve kapatmanız gerekmeden önce bir çalışma sayfasını kopyalayabileceğiniz tam sayı, kopyaladığınız çalışma sayfasının boyutuna bağlı olduğu için bir durumdan diğerine değişir.

runtime error 1004 Geçici Çözüm

Daha önce belirtildiği gibi, bu özel soruna yönelik bir geçici çözüm de mevcuttur. Bu soruna geçici bir çözüm, varılan bir çalışma sayfasının bir kopyasını oluşturmak yerine bir şablondan yeni bir çalışma sayfası eklemek için basit bir konudur. Bu soruna geçici bir çözüm bulmak istiyorsanız, yapmanız gerekenler aşağıda anlatılmıştır.

  1. Excel’i başlatın.
  2. Yeni bir çalışma kitabı oluşturun ve çalışma kitabının içerdiği her bir çalışma sayfasını bir tanesine kaydedin.
  3. Çalışma kitabını biçimlendirin.
  4. Şablonda olmasını istediğiniz metin, veri ve / veya grafikleri varsayılan olarak çalışma kitabının içerdiği tek çalışma sayfasına ekleyin.
  5. Excel 2003 veya önceki bir sürümünü kullanıyorsanız Dosya> Farklı Kaydet’e tıklayın. Excel 2007 veya sonraki bir sürümü kullanıyorsanız, Microsoft Office düğmesine tıklayın ve ardından Farklı Kaydet’e tıklayın.
  6. Dosya adı: alanına şablonun çağrılmasını istediğiniz her şeyi yazın.
  7. Kayıt türü: alanının yanındaki açılır menüyü açın ve Excel 2003 veya önceki bir sürümünü kullanıyorsanız Excel Şablonu (.xlt) veya Excel 2007 veya sonraki bir sürümünü kullanıyorsanız Excel Şablonu (.xltx) öğesini seçin.
  8. Kaydet’i tıklayın
  9. Şablonu başarıyla oluşturduktan sonra, aşağıdaki kod satırını kullanarak programlı olarak ekleyebilirsiniz
Sheets.Add Type:=path\filename

Not: Yukarıda açıklanan kod satırında,  az önce oluşturduğunuz sayfa şablonunun konumu için yol \ dosya adının tam yolla (tam dosya adı dahil) değiştirilmesi gerekir.

Yapılan Yorumlar
Bu yazı için henüz yorum yapılmamış! İlk yorumu sen yapabilirsin.
Bir Yorum Yapın

x