Aracılığıyla paylaş


Bir Office 2010 programının 64 bit sürümünde vba makroyu düzenlerken derleme hatası

Belirtiler

Aşağıdaki senaryoyu inceleyin:

  • Declare deyimlerini kullanan bir Microsoft Visual Basic for Applications (VBA) makro kodu yazarsınız.

  • VBA makro kodunuz derleme sabitlerini kullanıyor. Örneğin, makro kodunuz aşağıdaki derleme sabitlerinden birini kullanır:

    • #IF VBA7
    • #If Win64
  • Koşullu bir blokta #Else bloğu kullanırsınız. #Else bloğunda, Microsoft Visual Basic for Applications 6.0'da çalışacak şekilde tasarlanmış bir Declare deyimi için söz dizimi kullanırsınız.

  • Kodu bir Microsoft Office 2010 programının 64 bit sürümünde düzenlersiniz.

  • #Else bloğundaki Declare deyimini değiştirmeye çalışırsınız.

Bu senaryoda, aşağıdaki hata iletisini alırsınız:

Microsoft Visual Basic for Applications

Compile error:

The code in this project must be updated for use on 64-bit
systems. Please review and update Declare statements and then
mark them with the PtrSafe attribute.

Not

Bu sorun yalnızca VBA makrosunu düzenlediğinizde oluşur. Makroyu çalıştırdığınızda bu sorun oluşmaz.

Çözüm

Bu sorunu çözmek için ,"Derleme hatası"nı yoksayın ve Office 2010 programının 64 bit sürümünde VBA kodunu çalıştırın.

Daha Fazla Bilgi

Sorunu yeniden oluşturma adımları

Microsoft, belirli bir amaç için satılabilirlik ve/veya uygunluk zımni garantileri dahil ancak bunlarla sınırlı olmamak üzere açık veya zımni garanti vermeden, yalnızca illüstrasyon için programlama örnekleri sağlar. Bu makale, gösterilen programlama dilini ve yordamları oluşturmak ve hata ayıklamak amacıyla kullanılan araçları kullanmayı bildiğinizi varsayar. Microsoft destek ekipleri, belirli bir yordamın işlevselliğinin açıklanmasına yardımcı olabilir ancak gereksinimlerinizi karşılamaya yönelik olarak ek işlevsellik sağlamak veya yordamlar geliştirmek amacıyla bu örnekleri değiştirmezler.

Sağlanan destek seçenekleri ve Microsoft'a başvurma hakkında daha fazla bilgi için aşağıdaki Microsoft Web sitesini ziyaret edin:

https://support.microsoft.com/contactus

  1. Windows 64 bit işletim sisteminde çalışan Microsoft Excel 2010 64 bit sürümünü başlatın.

    Not

    Varsayılan olarak, yeni bir çalışma kitabı açılır.

  2. Visual Basic for Applications 7.0 IDE penceresini başlatmak için ALT+F11 tuşlarına basın.

  3. Ekle menüsünden Modül'e tıklayın.

  4. Görüntülenen kod penceresinde aşağıdaki kodu kopyalayıp yapıştırın:

    #If VBA7 Then
        Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal ms As LongPtr)
    #Else
        Private Declare Sub Sleep Lib "kernel32" (ByVal ms as Long)
    #End If
    
  5. Her Declare deyiminde, "ms" olan herhangi bir parametrenin adını el ile "milisaniye" olarak değiştirin.

İkinci Declare deyimini değiştirdiğinizde, Visual Basic for Applications 7.0 PtrSafe kullanmanız gerekeceğini belirten bir hata bildirir. Ancak, satır yalnızca Visual Basic for Applications 6.0'da çalışan bir bölümde olduğundan rapor yanlıştır. VBA 6.0 PtrSafe kullanmaz. Bu nedenle, hata iletisini güvenle yoksayabilirsiniz.