簡體   English   中英

將10個單元格的內容復制到Windows剪貼板,然后通過vba逐一傳遞到另一個程序

[英]Copy 10 cells' content to Windows Clipboard and pass to another program one by one through vba

我試圖將10個單元格一一復制到Windows剪貼板中,以便我的剪貼板管理器軟件(Ditto)抓取它們,然后在其他地方使用這些復制的內容。 但是,似乎excel會等到子例程結束,然后將最后復制的項目放入Windows剪貼板中。 我嘗試了這個 ,使用sleep() sendkeys "^c" ,還嘗試了每個單元格的range().copyfor循環中執行復制過程,但是每次我只有Ditto中可用的最后一個單元格的內容時。

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

當此子項結束時,我在Ditto中的內容是最后一個單元格的內容,而如果我在Excel中一個接一個地手動復制單元格,則每個單元格在Ditto中可用。 我正在嘗試實現手動處理的結果,但可以通過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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM