• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

shell32.dll mesajı

Katılım
17 Şubat 2012
Mesajlar
8
Excel Vers. ve Dili
2010 türkçe
Private Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long


Merhabalar, ben makro çalıştırırken böyle bir hata mesajı alıyorum. win7 64 bit, office 2010 64 bit kullanmaktayım. 64 bitle ilgili bir sıkıntı var ama office 32 bit mi kurmam gerekiyor , direkt kodlara müdahele ederek düzeltme imkanım varmıdır?

Temel Korkmaz ın kitabını aldım yeni başladım , o yüzden çalıştırırken sıkıntı yaşıyorum , öğrenmek istiyorum :)
 
Deklerasyona aşağıdaki kırmızı renkli ilaveyi yaparak denermisiniz.

Kod:
Private Declare [B][COLOR=Red]PtrSafe [/COLOR][/B]Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long
 
onu da denedim de bu sefer invalid use of null diyor .
 
Son düzenleme:
onu da denedim de bu sefer invalid use of null diyor .
Hatadan anlaşıldığı üzere problem yaşadığınız örnekte veritabanından "Null" değeri geliyor daha doğrusu hiç bir değer gelmiyor. Problemsiz dosyada ise 0 karakter uzunluğunda boş bir değer geliyor. ("")

VBA ve diğer programlama dillerinde Empty ve Null diye iki kavram vardır. Aradaki fark şudur: Bir değişkenin değeri Empty ise ya "" gibi boş bir string olur yada 0' dır. Eğer Null ise hafızada henüz oluşturulmamış demektir.

IsEmpty ve IsNull fonksiyonları böyle durumları kontrol altında tutmak içindir.

Aşağıdaki örneği inceleyiniz. Null olan değerde hata mesajı gelecektir.
Kod:
Sub test()
Dim a As String
Dim b As Double
Dim c As Variant

a = Empty
b = Empty
c = Null

MsgBox a  '<--- boş bir mesaj kutusu gösterir
MsgBox b  '<--- mesaj kutusunda 0 gösterir
MsgBox c  '<--- hata verir..
End Sub
 
Private Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long

macrodaki yazıyı
Declare PtrSafe Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long

şeklinde değiştir macroların 64 bitdede çalışsın
declare ile function yazısının arasına PtrSafe yazmanız yeterli olacaktır. kolay gelsin
 
Geri
Üst