如何使用 autohotkey 控制从 Excel 表复制和粘贴?

如何使用 autohotkey 控制从 Excel 表复制和粘贴?

我正在使用以下 autohotkey 脚本将一些数据从 ms excel 表复制并粘贴到其他程序中:

f1::
loop 2000
{
Send, {CTRLDOWN}c{CTRLUP}
sleep 100
send {ALTDOWN}{TAB}{ALTUP}
sleep 100
Send, {CTRLDOWN}v{CTRLUP}{enter}
sleep 100
send {ALTDOWN}{TAB}{ALTUP}
sleep 100
send {down}
}
return

Excel 表的 A 列中有 2000 多个条目,我必须将其复制并粘贴到其他程序中。

我的问题是,所有这些条目都在随机单元格中,即 Excel 表的 a 列中有许多空白单元格。

autohotkey 中是否有任何命令可以仅复制那些有数据的单元格并且可以省略空白单元格?

是否可以删除 Excel 表中所有空白的行(单元格)?

这是 SIDOLA 提出的一个很好的解决方案

我还想问的是——如果粘贴时出现同样的问题,我该怎么办,也就是说,我从 excel 表中复制了一些数据,如果相同的数据已经存在于我想要粘贴的程序中,那么我希望它应该跳过粘贴这些数据,并继续下一次复制。请帮忙。

答案1

您可以尝试检查Clipboard发送后变量为空Send, {CTRLDOWN}c{CTRLUP}。如果是,则直接跳过其余流程并继续下一行。

f1::
    loop 2000
    {
        Send, {CTRLDOWN}c{CTRLUP}

        ; If nothing was copied, move down and start over
        if (!Clipboard) {
            Send, {down}
            Continue
        }

        sleep 100
        send {ALTDOWN}{TAB}{ALTUP}
        sleep 100
        Send, {CTRLDOWN}v{CTRLUP}{enter}
        sleep 100
        send {ALTDOWN}{TAB}{ALTUP}
        sleep 100
        send {down}
    }
return

相关内容