我正在编写一个简单的脚本来手动复制和粘贴单元格值。 我知道我可以通过其他方式做到这一点,但我想使用SendKeys。
这是我将单元格A1复制到A2中的脚本:
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub my_copy()
Range("A1").Select
SendKeys "^c"
Sleep 10
Range("A2").Select
SendKeys "~"
Sleep 10
End Sub
我似乎无法弄清楚如何纠正我遇到的问题。它选择单元格A1,然后等待,然后A2,然后复制和粘贴。 (而不是在选择A1后复制)
我在这里错过了什么吗?
答案 0 :(得分:2)
为什么不:
Range("A2") = Range("A1")
A2是A1的副本。 如果你想使用sendkeys,我会这样做:
Range("A1").Select
SendKeys "^c", True
Range("A2").Select
SendKeys "^V", True 'I'm a Windows user
真正意味着等待,但这是Excel VBA的格式。
答案 1 :(得分:0)
icebird76是正确的,但您仍然可以使用“〜”发送“输入”。这意味着您不会将Cell A1选为复制的单元格。
Range("A1").Select
SendKeys "^c", True
Range("A2").Select
SendKeys "~", True
有关SendKeys声明如何工作以及此处“True”要求的更多信息.... https://msdn.microsoft.com/en-us/library/office/gg278655.aspx