将 10 个单元格的内容复制到 Windows 剪贴板,并通过 vba 逐个传递到另一个程序



我正在尝试将 10 个单元格一个接一个地复制到 Windows 剪贴板中,以便我的剪贴板管理器软件(同上(抓取它们,然后在其他地方使用这些复制的内容。但似乎 excel 会等到子例程结束,然后将最后一个复制的项目放入 Windows 剪贴板。我尝试了这个,sendkeys "^c"sleep(),还尝试range().copy每个单独的单元格在for循环中执行复制过程,但每次我只有最后一个单元格的内容在同上可用。

Sub copy()
Dim r As Integer
Dim c As Integer
r = ActiveCell.Row
For c = 1 To 10
Cells(r, c).copy
Next c
End Sub

当这个子结束时,我在同上拥有的是最后一个单元格的内容,而如果我在 Excel 中手动逐个复制单元格,我将在同上提供每个单元格。我正在尝试实现手动过程的结果,但通过 vba 进行。

这就是我解决它的方式: 我在每个剪贴板副本之间添加了 2 秒的延迟 (小于它不起作用(

这是我的代码:

Sub DittoTest()
Dim r As Integer
Dim c As Integer
c = ActiveCell.Column
For r = 1 To 100
If Cells(r, c).Value = "" Then Exit For
Cells(r, c).copy
'MsgBox "ligne " & r & " : " & Cells(r, c).Value
Application.Wait (Now + TimeValue("0:00:02"))
Next r
MsgBox r & " ligne(s) copiée(s)"
End Sub

最新更新