Vba Excel编译器错误64位

Vba Excel编译器错误64位,vba,excel,Vba,Excel,我的代码在excel 2010版本中运行良好,但我不确定在2013版本中需要更改什么 Option Explicit Private Declare Function URLDownloadToFile Lib "urlmon" _ Alias "URLDownloadToFileA" (ByVal pCaller As Long, _ ByVal szURL As String, ByVal szFileName As String, _ ByVal dwReserved As Long,

我的代码在excel 2010版本中运行良好,但我不确定在2013版本中需要更改什么

Option Explicit

Private Declare Function URLDownloadToFile Lib "urlmon" _
Alias "URLDownloadToFileA" (ByVal pCaller As Long, _
ByVal szURL As String, ByVal szFileName As String, _
ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long

Dim Ret As Long

'~~> This is where the images will be saved. Change as applicable
Const FolderName As String = "C:\Temp\"

我倾向于将这些类型的函数转换为PTRSafe函数:

Private Declare PtrSafe Function URLDownloadToFile Lib "urlmon" _
Alias "URLDownloadToFileA" (ByVal pCaller As LongPtr, _
ByVal szURL As String, ByVal szFileName As String, _
ByVal dwReserved As LongPtr, ByVal lpfnCB As LongPtr) As LongPtr
Dim Ret As LongPtr

这包括添加“PtrSafe”一词,并将所有“Long”变量更改为LongPtr

,感谢您的帮助。。。你能解释一下为什么它用PTRSafe修复,它做什么?它什么都不做。它只是强迫您承认您已经检查了代码,现在代码是64位安全的。它是否像HTML1.0时代人们使用的
new
GIF将
PtrSafe
的全部细节放在更新项目的旁边,而其他64位更改是PS。永远不要硬编码
C:\Temp
。至少使用
Environ$(“temp”)
或类似于
FileSystemObject
类的其他标准方法。看到这个答案了吗