找回密码
 加入
搜索
查看: 932|回复: 11

[系统综合] 判断剪切板为空时问题

[复制链接]
发表于 2022-4-1 13:46:08 | 显示全部楼层 |阅读模式
从Excel中复制单元格到其它程序。当检测到的剪切板为空(无内容)时,则退出循环,并退出程序。
但判断剪板板为空条件总是不成立?
Local $aa=0
Do
Send("{CTRLDOWN}c{CTRLUP}")
Local $sData = ClipGet()
 Sleep(1000)
 $sData = ClipGet()
If $sData="" Then   ;尝试了error=1,$sData=''均不行
        ExitLoop
        ExitProgram()
Else
;执行程序
Send("{CTRLDOWN}a{CTRLUP}")
Sleep(500)
ClipPut($sData)
Send($sData)
Sleep(500)
...
$aa=$aa+1
Until $aa=100
EndIf


发表于 2022-4-1 14:04:54 | 显示全部楼层
如无清空剪贴板的操作,剪贴板始终会保留上次的数据,当然不为空。你不会认为随意按下ctrl-c就能清空吧?ClipPut('') 一次就清空了。
BTW, 第9行永远不会执行到
 楼主| 发表于 2022-4-1 14:11:56 | 显示全部楼层
afan 发表于 2022-4-1 14:04
如无清空剪贴板的操作,剪贴板始终会保留上次的数据,当然不为空。你不会认为随意按下ctrl-c就能清空吧?Cl ...

也就是说复制空时,还会保留上一次内容么。。。
当复制到Excel单元格为空时,则退出循环,那怎么判断呢?
发表于 2022-4-1 14:24:05 | 显示全部楼层
试试 If StringRegExp($sData, '^\v*$') Then
 楼主| 发表于 2022-4-1 15:12:41 | 显示全部楼层
afan 发表于 2022-4-1 14:24
试试 If StringRegExp($sData, '^\v*$') Then

可以用的。
TKS~~~
发表于 2022-4-1 15:13:39 | 显示全部楼层
weixieyang 发表于 2022-4-1 14:11
也就是说复制空时,还会保留上一次内容么。。。
当复制到Excel单元格为空时,则退出循环,那怎么判断呢 ...

为何不在读取Excel单元格时判断?
 楼主| 发表于 2022-4-1 15:46:41 | 显示全部楼层
chzj589 发表于 2022-4-1 15:13
为何不在读取Excel单元格时判断?

我不是用的自定义的函数 读取Excel 方式,是先前端打开excel,再复制、粘贴到别的程序的。
发表于 2022-4-1 15:57:19 | 显示全部楼层
weixieyang 发表于 2022-4-1 15:46
我不是用的自定义的函数 读取Excel 方式,是先前端打开excel,再复制、粘贴到别的程序的。

复制之前读取就判断是否空格
 楼主| 发表于 2022-4-1 16:00:23 | 显示全部楼层
chzj589 发表于 2022-4-1 15:57
复制之前读取就判断是否空格

复制之前判断不了,打开excel,执行选中,复制...下一个单元格再选中...复制
选中的时候判断不了内容是不是空
发表于 2022-4-1 16:25:01 | 显示全部楼层
weixieyang 发表于 2022-4-1 16:00
复制之前判断不了,打开excel,执行选中,复制...下一个单元格再选中...复制
选中的时候判断不了内容是 ...

你是说某列中有数据也有空格?不是一个单元格?
 楼主| 发表于 2022-4-1 16:29:31 | 显示全部楼层
chzj589 发表于 2022-4-1 16:25
你是说某列中有数据也有空格?不是一个单元格?

是单元格。需要检测单元格为空,但只选中时无法判断,只有复制后,我才能考虑判断是否为空。
这样循环读取某一列的单元格,直到单元格为空时退出。
发表于 2022-4-1 17:25:16 | 显示全部楼层
weixieyang 发表于 2022-4-1 16:29
是单元格。需要检测单元格为空,但只选中时无法判断,只有复制后,我才能考虑判断是否为空。
这样循环读 ...

不知你是怎样读取的?
用_Excel_RangeRead读取后,再循环判断
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-22 16:11 , Processed in 0.088373 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表