PyAutoGUI:如何在Excel中移动选择?

时间:2018-10-05 21:52:45

标签: python excel python-3.x pyautogui

我正在尝试使用PyAutoGUI(Python 3.7 64位)将Excel中的单元格列从一张纸复制到另一张纸。

代码是:

import pyautogui as gui
gui.PAUSE = 1
gui.FAILSAFE = True
gui.keyDown('shift')
gui.typewrite(['down']*67)
gui.keyUp('shift')
gui.keyDown('ctrl')
gui.press('c')
gui.keyUp('ctrl')

应按住shift键,单击向下箭头67次以选择所需的单元格,然后释放shift键。之后,文本将被复制到剪贴板。

运行时(预先选择了顶部单元格),每个步骤的延迟都很明显,但是好像没有按住Shift键。选定的单元格移到底部,但以前的单元格未被选中。在底部,复制了最后一个单元格。

似乎'ctrl'在起作用,但是'shift'在不起作用。如果我在换档时运行keyUp之前停止运行,则在程序结束时,我的计算机就好像在按下换档一样,直到再次按下该键为止。我也曾尝试使用'shiftright'来解决问题,但这没什么区别。在这些操作之前,有许多PyAutoGUI函数运行,但是与这些键的状态无关。

我也一直在寻找不使用shift来选择这些单元的替代方法,但是却找不到任何东西。

有人对此有建议吗?

1 个答案:

答案 0 :(得分:-1)

有同样的问题。不知道这是否是一个很好的答案,但是我想我将只创建一个excel宏,然后通过pyautogui运行它。

宏:

Sub Select()
'
' Select Macro
'

'
    Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
End Sub