小编Ron*_*onk的帖子

如何在 VBA 中声明 PtrSafe Sub?Windows 7、Excel 2016、64 位

我正在尝试将我的大量 VBA 应用程序从 Long 数据类型升级为 LongLong 或 LongPtr,以便能够处理更多数字。但我不知道如何调用这个 PtrSafe Sub...一些帮助会非常有帮助。

我尝试了一个简单的示例 Sub 来隔离问题。但不知道我应该调用哪个库,最重要的是:这个子库应该是私有的还是公共的?

Public Declare PtrSafe Sub Example Lib "??????" (ByVal x, y, z As LongPtr)

Dim x, y, z As LongPtr

x = 123456789
y = 123456789
MsgBox z = x * y

End Sub
Run Code Online (Sandbox Code Playgroud)

谁能向我解释一下如何调用 PtrSafe 的 Sub 吗?

excel vba long-long

3
推荐指数
1
解决办法
1万
查看次数

如何在VBA布尔/ LongLong数组中处理"类型不匹配"?

当尝试执行下面的代码时,我得到VBA错误:类型不匹配.任何人都知道原因(和解决方案?:-))

我将数据类型从Long更改为LongLong,以便能够处理更大的数字.在此之前,代码(摘录)工作正常.

Private Declare PtrSafe Function GetDC Lib "user32" (ByVal hwnd As LongPtr) As LongPtr
Private Declare PtrSafe Function GetDeviceCaps Lib "gdi32" (ByVal hDC As LongPtr, ByVal nIndex As Long) As Long
Private Declare PtrSafe Function ReleaseDC Lib "user32" (ByVal hwnd As LongPtr, ByVal hDC As LongPtr) As Long

Public Sub TestScreenResolution()
    Debug.Print ScreenResolution
End Sub
Private Function ScreenResolution() As Double
     Dim hDC As Long
     hDC = GetDC(0)
     ScreenResolution = GetDeviceCaps(hDC, 88)
     ReleaseDC 0, hDC
End Function

Public Sub TestMySub() …
Run Code Online (Sandbox Code Playgroud)

arrays vba long-long

3
推荐指数
1
解决办法
148
查看次数

标签 统计

long-long ×2

vba ×2

arrays ×1

excel ×1