Excel'de Çalışma Zamanı Hatası 1004 Nasıl Onarılır

Çalışma zamanı hatası 1004, Microsoft Excel kullanıcılarını etkilediği bilinen Microsoft Visual Basic ile ilgili bir hata kodudur. Microsoft'un popüler çalışma sayfası uygulamasının bilgisayarlara yönelik hiçbir sürümü, Çalışma Zamanı Hatası 1004 olan tehditden korunmasa da, Excel 2003 ve Excel 2007'de en yaygın olduğu bilinir. Çoğu durumda, bu sorundan etkilenen kullanıcılar, bunlardan birini görür. Çalışma zamanı hatası 1004'ün iki farklı varyasyonu. Bunların tamamında Çalışma zamanı hatası 1004'ün iki varyasyonu okundu:

Çalışma zamanı hatası '1004':

Çalışma Sayfası Sınıfının Kopyalama Yöntemi başarısız oldu ”

Çalışma zamanı hatası '1004':

Uygulama tanımlı veya nesne tanımlı hata ”

Gördüğünüz kesin hata mesajı, hata kodu aynı kalmasına rağmen, birkaç durumda da biraz değişebilir. Ancak, sorunun hangi sürümüyle karşılaşırsanız yaşayın, çalışma sayfalarını kopyalamak ve kopyaları orijinal çalışma sayfasıyla aynı çalışma kitabına yerleştirmek üzere tasarlanmış bir makroyu çalıştırırken neredeyse her zaman gerçekleşir.

Oradaki en kötü teknik sorunların aksine, Microsoft Excel içindeki Çalışma zamanı hatasının 1004 hatasının nedeni bilinmektedir. Çalıştırma zamanı hatası 1004, çalıştırdığınız makro, orijinal çalışma sayfasını, makroyu çalıştırmadan önce kaydetmediğiniz ve kapatmadığınız tanımlanmış bir adla çalışma kitabına kopyalarken 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 Çalışma zamanı hatasının 1004 nedeni olarak, çözünürlük gibi biliniyor. Bu sorunun çözümüne ek olarak, bundan etkilenen kullanıcılar için de mevcut olan, çözümün çalışmadığı veya çözümü uygun bir seçenek olarak bulamadıkları durumlarda kullanılabilecek bir geçici çözümdür.

Çözüm:

Bu özel sorunun çözümü, çalışma sayfalarının kopyalarını çıkarırken hedef çalışma kitabını periyodik olarak kaydetmesi ve kapatması için çalıştırmakta olduğunuz makro kodunu düzenlemektir. Bunu yapan bir makro için kod aşağıdaki satırları boyunca bir şey bakmak olacaktı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: Çalışma kitabını kaydetmeden ve kapatmadan önce çalışma sayfalarını kopyalayabilmenizin tam sayısı, kopyaların kaydedildiği çalışma sayfasının boyutuna bağlı olarak bir durumdan diğerine değişir.

Geçici Çözüm:

Daha önce belirtildiği gibi, bu belirli soruna bir geçici çözüm de mevcuttur. Bu soruna geçici bir çözüm bulmak, varolan bir çalışma sayfasının kopyasını oluşturmak yerine, ş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:

  1. Excel'i başlatın.
  2. Yeni bir çalışma kitabı oluşturun ve çalışma kitabında bir tane kaydet içeren her çalışma sayfasını silin .

  3. Çalışma kitabını biçimlendirin .
  4. Çalışma kitabının şimdi içerdiği tek çalışma sayfasına varsayılan olarak şablonda olmasını istediğiniz herhangi bir metni, veriyi ve / veya grafiği ekleyin.
  5. Excel 2003 veya daha önceki bir sürümünü kullanıyorsanız, Dosya > Farklı Kaydet'i tıklatın. Excel 2007 veya sonraki bir sürümünü kullanıyorsanız, diğer taraftan, Microsoft Office düğmesini ve ardından Farklı Kaydet'i tıklatın.

  6. Dosya adı : alanına, şablonun çağrılmasını istediğiniz yeri yazın.
  7. Kayıt türü: alanının yanındaki açılır menüyü açın ve Excel 2003 veya daha önceki bir sürümünü kullanıyorsanız Excel Template'i (.xlt) veya Excel 2007 veya sonraki bir sürümünü kullanıyorsanız Excel Template'i (.xltx) tıklatın .

  8. Kaydet'e tıklayın .

  9. Şablonu başarıyla oluşturduktan sonra, aşağıdaki kod satırını kullanarak programlı olarak ekleyebilirsiniz:

    Sayfalar.Add Türü: = yol \ dosyaadı

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

Ilginç Haberler