我有一个用32位编写的相当大的excel宏,需要转换为使用n excel 64位。有没有简单的方法来进行这种转换? 它是一个大型宏,无法逐行转换。
我已经包含了以下部分代码。
'32-bit API declarations
Declare Function SHGetPathFromIDList Lib "shell32.dll" _
Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long
Declare Function SHBrowseForFolder Lib "shell32.dll" _
Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long
Sub DisplayDirectoryDialogBox()
Dim Msg As String
FileCount = 0
Msg = "Select a location containing the files you want to list."
SelectedDir = GetDirectory(Msg)
If SelectedDir = "" Then End
With Application
.StatusBar = "WAIT..."
.ScreenUpdating = False
答案 0 :(得分:0)
归功于Gserg:
手动将PtrSafe添加到所有声明中。在表示LongPtrs指针的声明中手动转换所有Longs(在显示的代码中,这将只是pidl)。手动更新作为这些参数传递给LongPtr的过程中的Long变量的声明。别无他法。您可以尝试研究可以自动化替换程度的重构工具/插件。 - GSerg 7月18日8:55