We help IT Professionals succeed at work.

Error 453, Can't find DLL entry point Sleep in kernel32 with VBA call in Office add-in

330 Views
Last Modified: 2020-11-13
I have an Office VBA add-in that's causing a problem with one issolated user amongst many others that are not experiencing the the same issue. I've issolated it to the Windows API Sleep function.

This is the declaration I'm using, the 64 bit version coming from official Microsoft documentation (I also tried LongLong instead of Long):

#If VBA6 Then
  ' from Microsoft's Win32API_PtrSage.txt
  Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
#Else
  Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
#End If

Open in new window


When trying to call this with this example in the same module:

Public Sub TestSleep()
    Sleep 1000
End Sub

Open in new window


This particular user sees this error message:

"453 Can't find DLL entry point Sleep in kernel32"

They are using Office 2016, 32 bit (build 10730) on Windows 10, 64 bit and I have had them check the version of the kernel32.dll which is 10.0.16299.1029, 3/6/2019 (my PC has 10.0.1734.648, 06/03/2019)

What can I do now to establish the cause of the issue and fix it?
Comment
Watch Question

Scott McDaniel (EE MVE )Infotrakker Software
CERTIFIED EXPERT
Most Valuable Expert 2012
Top Expert 2014

Commented:
I don't see anything wrong with you code, and versions really shouldn't make a difference for that dll file.

I'd suspect that your user has some problem with their Windows installation. Not much you can do about that other than suggest a repair/reinstall.

What are you using Sleep for? Just curious, there may be another way which will avoid the use of that call.
Senior Developer
CERTIFIED EXPERT
Commented:
This problem has been solved!
(Unlock this solution with a 7-day Free Trial)
UNLOCK SOLUTION
Jamie Garroch (MVP)PowerPoint Technical Consultant
CERTIFIED EXPERT

Author

Commented:
Doh. Thanks for that catch ste5an. In the actual add-in, I used thew Win64 test and changed it to VBA7 as a first step. When copying to the issolated test file, I injected this typo. I'm going to retest and see wheat the result is.