Belirtiler

Microsoft Visual Basic .NET, Microsoft Visual C# .NET veya Microsoft Visual C++ ile Microsoft Excel'i otomatikleştirirseniz, belirli yöntemleri çağırırken aşağıdaki hatayı alabilirsiniz:

Hata: 0x80028018 (-2147647512)Açıklama: Eski Biçim veya Geçersiz Tür Kitaplığı

Neden

Aşağıdaki koşullar doğru olduğunda bir Excel yöntemini çağırırken bu hatayı alırsınız:

  • yöntemi bir LCID (yerel ayar tanımlayıcısı) gerektirir.

  • Excel'in İngilizce sürümünü çalıştırırsınız. Ancak, bilgisayarın bölgesel ayarları İngilizce olmayan bir dil için yapılandırılır.

İstemci bilgisayar Excel'in İngilizce sürümünü çalıştırıyorsa ve geçerli kullanıcının yerel ayarı İngilizce dışında bir dil için yapılandırılmışsa, Excel yapılandırılan dilin dil paketini bulmaya çalışır. Dil paketi bulunamazsa hata bildirilir.

Geçici Çözüm

Bu sorunu geçici olarak çözmek için aşağıdaki yöntemlerden birini kullanabilirsiniz:

  • Office sürümünüz için Çok Dilde Kullanıcı Arabirimi Paketi'ni yükleyin.

  • Çağrı için CultureInfo belirtebilmeniz için InvokeMember kullanarak Excel yöntemini veya özelliğini yürütebilirsiniz. Örneğin, aşağıdaki kodda CultureInfo olarak "en-US" ile Çalışma Kitapları nesnesi Ekleme yöntemini nasıl çağırabileceğiniz gösterilmektedir:

    Dim oApp As New Excel.Application()oApp.Visible = TrueoApp.UserControl = TrueDim oBooks As Object = oApp.WorkbooksDim ci As System.Globalization.CultureInfo = New System.Globalization.CultureInfo("en-US")oBooks.GetType().InvokeMember("Add", Reflection.BindingFlags.InvokeMethod, Nothing, oBooks, Nothing, ci)
  • Alternatif olarak, Excel yöntemini çağırmadan önce CultureInfo değerini de ayarlayabilirsiniz. Örneğin:

    Dim oApp As New Excel.Application()oApp.Visible = TrueoApp.UserControl = TrueDim oldCI As System.Globalization.CultureInfo = _    System.Threading.Thread.CurrentThread.CurrentCultureSystem.Threading.Thread.CurrentThread.CurrentCulture = _    New System.Globalization.CultureInfo("en-US")oApp.Workbooks.Add()System.Threading.Thread.CurrentThread.CurrentCulture = oldCI
  • Microsoft Office\Office11 altında bir 1033 dizini oluşturun. Ardından, excel.exe 1033 dizinine kopyalayın ve xllex.dll olarak yeniden adlandırın. Daha fazla bilgi için aşağıdaki bağlantıya tıklayın:http://blogs.msdn.com/eric_carter/archive/2005/06/15/429515.aspx

Bölgesel ayarların Office'in geçerli dil sürümüyle eşleşmediği bir bilgisayar için bu geçici çözümlerden birini kullandığınızda, Excel'in nasıl davrandığını ve Excel'in belirli bir yerel ayar için biçimlendirilmiş verileri nasıl yorumladığı hakkında bilgi sahibi olmanız gerekir. Visual Studio .NET ile genelleştirilmiş Excel çözümleri yazma hakkında daha fazla ayrıntı için msdn'deki şu makalelere bakın:Birden Çok Ülkede/Bölgede Kullanmak için Office Çözümleri Oluşturma

http://msdn2.microsoft.com/en-us/library/aa168494(office.11).aspxMicrosoft Office Sistemi için Microsoft Visual Studio Araçları ile Oluşturulan Çözümler için Genelleştirme ve Yerelleştirme Sorunları

http://msdn2.microsoft.com/en-us/library/aa192494(office.11).aspx

Durum

Microsoft, bunun "Şunlar için geçerlidir" bölümünde listelenen Microsoft ürünlerinde bir hata olduğunu onayladı.

Ek Bilgi

Davranışı yeniden oluşturma adımları

  1. Bilgisayarın yerel ayarının İngilizce dışında bir dile ayarlandığını doğrulayın.Windows 2000 için:

    1. Windows Denetim Masası'da Bölgesel Seçenekler'e çift tıklayın.

    2. Genel sekmesinde bir konum seçin ve ardından Tamam'a tıklayın.

    Windows XP veya Windows Server 2003 için:

    1. Denetim Masası'da Bölge ve Dil Seçenekleri'ni açın.

    2. Bölgesel Seçenekler sekmesinde bir yerel ayar seçin ve ardından Tamam'a tıklayın.

  2. Microsoft Visual Studio .NET'i başlatın.

  3. Dosya menüsünde Yeni'nin üzerine gelin ve Proje'ye tıklayın. Yeni Proje iletişim kutusundaki Proje Türleri'nin altında Visual Basic Projeleri'ne tıklayın. Şablonlar altında, Windows Uygulaması'nı ve ardından Tamam'ı tıklatın. Varsayılan olarak, Form1 oluşturulur.

  4. Görünüm menüsünde Araç Kutusu'na tıklayın ve form1'e bir düğme ekleyin.

  5. Formun kod penceresini görüntülemek için Düğme1'e çift tıklayın.

  6. Kod penceresinde aşağıdaki kodu değiştirin

    Private Sub Button1_Click(ByVal sender As System.Object, _                          ByVal e As System.EventArgs) _                          Handles Button1.ClickEnd Sub

    Ile:

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click    Dim oApp As Object    Dim oDoc As Object    oApp = CreateObject("Excel.Application")    oApp.Visible = True    oDoc = oApp.Workbooks.Add    oDoc.Close()    oApp.Quit()    oDoc = Nothing    oApp = NothingEnd Sub
  7. Form1 kod modülünün başına aşağıdaki satırı ekleyin:

    Option Strict Off
  8. Programı derlemek ve çalıştırmak için F5 tuşuna basın.

  9. Hatayı oluşturmak için Düğme1'e tıklayın. Hata şu satırda oluşur:

    oDoc = oApp.Workbooks.Add

Başvurular

Office Otomasyonu hakkında daha fazla bilgi için aşağıdaki Microsoft Office Geliştirme Web sitesini ziyaret edin:

http://support.microsoft.com/ofd Ayrıca, aşağıdaki Microsoft Bilgi Bankası makalelerine bakın:

301982 Visual Basic .NET'ten Microsoft Excel'i otomatikleştirme

302084 Microsoft Visual C# .NET'ten Microsoft Excel'i otomatikleştirme

Daha fazla yardıma mı ihtiyacınız var?

Daha fazla seçenek mi istiyorsunuz?

Abonelik avantajlarını keşfedin, eğitim kurslarına göz atın, cihazınızın güvenliğini nasıl sağlayacağınızı öğrenin ve daha fazlasını yapın.