电脑不锁屏没有问题。锁屏时不能粘贴excel数据,也可以说粘贴的空白,代码就继续往下执行了。
怎么解决这个问题?
代码复制上来,提交总报错。搞个图片了
电脑锁屏时vba运行SAP,excel数据不能复制到SAP,没有方法解决了?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
11条回答 默认 最新
关注 引自强大而免费的微信小程序:皆我知道。
当电脑锁屏时,无法进行粘贴操作,这是由于锁屏后剪贴板被禁用所导致的。在VBA中,可以通过设置API来解决这个问题。
首先,需要在代码开头添加以下声明:
Private Declare PtrSafe Function OpenClipboard Lib "user32" (ByVal hwnd As LongPtr) As LongPtr Private Declare PtrSafe Function CloseClipboard Lib "user32" () As LongPtr Private Declare PtrSafe Function EmptyClipboard Lib "user32" () As LongPtr
然后,在需要进行粘贴操作的代码前后添加以下代码:
Dim hwnd As LongPtr hwnd = GetForegroundWindow() '获取当前活动窗口句柄 OpenClipboard hwnd '打开剪贴板 EmptyClipboard '清空剪贴板
在粘贴操作完成后,添加以下代码:
CloseClipboard '关闭剪贴板
完整的代码如下:
Private Declare PtrSafe Function OpenClipboard Lib "user32" (ByVal hwnd As LongPtr) As LongPtr Private Declare PtrSafe Function CloseClipboard Lib "user32" () As LongPtr Private Declare PtrSafe Function EmptyClipboard Lib "user32" () As LongPtr Sub PasteDataToSAP() Dim hh As Long Dim hwnd As LongPtr hh = Range("a2").CurrentRegion.Rows.Count hwnd = GetForegroundWindow() OpenClipboard hwnd EmptyClipboard '在此处添加粘贴操作的代码 CloseClipboard End Sub
注意:上述代码使用的是32位API声明,如果你的电脑是64位的,需要将代码中的
Long
改为LongPtr
。另外,还需要确保电脑的权限设置允许程序在锁屏状态下操作剪贴板。如果你没有权限修改这些设置,建议联系系统管理员进行配置。
解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 pcl运行在qt msvc2019环境运行效率低于visual studio 2019
- ¥15 MAUI,Zxing扫码,华为手机没反应。可提高悬赏
- ¥15 求帮看看那里的问题ssh项目报错
- ¥15 python运行报错 ModuleNotFoundError: No module named 'torch'
- ¥100 华为手机私有App后台保活
- ¥15 sqlserver中加密的密码字段查询问题
- ¥20 有谁能看看我coe文件到底哪儿有问题吗?
- ¥20 我的这个coe文件到底哪儿出问题了
- ¥15 matlab使用自定义函数时一直报错输入参数过多
- ¥15 设计一个温度闭环控制系统