简体   繁体   中英

What does this message mean in vba?

在此处输入图像描述 I recently have changed my windows and now when i run my vba code i get the following message:

 'Place this code in a Module
 
Private Declare Function FindWindowA Lib "USER32" _
(ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long

Private Declare Function GetWindowLongA Lib "USER32" _
(ByVal hWnd As Long, _
ByVal nIndex As Long) As Long

Private Declare Function SetWindowLongA Lib "USER32" _
(ByVal hWnd As Long, _
ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long

anyone can help me how to solve this problem? thanks.

You should add a precompile If statement to work with Win 32 and 64.

The code below will make this work in Windows 32 and 64 bit systems.

Option Explicit
#If Win64 Then
    Private Declare PtrSafe Function FindWindowA Lib "USER32" _
        (ByVal lpClassName As String, _
        ByVal lpWindowName As String) As Long
    
    Private Declare PtrSafe Function GetWindowLongA Lib "USER32" _
        (ByVal hWnd As Long, _
        ByVal nIndex As Long) As Long
    
    Private Declare PtrSafe Function SetWindowLongA Lib "USER32" _
        (ByVal hWnd As Long, _
        ByVal nIndex As Long, _
        ByVal dwNewLong As Long) As Long
#Else
    Private Declare Function FindWindowA Lib "USER32" _
        (ByVal lpClassName As String, _
        ByVal lpWindowName As String) As Long
    
    Private Declare Function GetWindowLongA Lib "USER32" _
        (ByVal hWnd As Long, _
        ByVal nIndex As Long) As Long
    
    Private Declare Function SetWindowLongA Lib "USER32" _
        (ByVal hWnd As Long, _
        ByVal nIndex As Long, _
        ByVal dwNewLong As Long) As Long
#End If

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM