我想將一個已經打開的Excel實例的數據複製到VBA中的另一個Excel實例中。我想:如何在VBA中的兩個打開的Excel實例之間進行復制?
Option Explicit
Sub copy_paste()
Dim destination_sanitized As String
Dim fs As New FileSystemObject
destination_sanitized = fs.BuildPath("c:\temp\", "1.xlsx")
Dim xl As New Excel.Application
Dim wb As Workbook
Set wb = xl.Workbooks.Open(Filename:=destination_sanitized)
Dim r1 As Range
Dim r2 As Range
Set r1 = ThisWorkbook.Sheets("hidden").Range("E10:E13")
Set r2 = wb.Sheets("Sheet1").Range("J20:J23")
On Error GoTo Cleanup
r1.Copy r2
Cleanup:
wb.Close SaveChanges:=False
Set xl = Nothing
MsgBox Err.Number & ": " & Err.description
End Sub
我得到運行時錯誤「1004」:範圍類的複製方法失敗
我如何複製從一個數據已經打開的Excel實例在VBA另一個Excel實例?
我知道如何做到這一點,當他們是同一個實例的一部分。在這種特殊情況下,我需要兩個工作簿處於不同的實例中。我還需要做一個完整的副本(數據驗證,公式,值,格式等),所以r2.Value = r1.Value是不夠的。
作者:「然而,我使用至少10個同時出色」你的意思是你在Excel的一個實例中打開了10個工作簿,或者是10個獨立的實例運行? – brettdj
當你的問題解決了,接受一些答案,比我們試圖建議一些代碼 – niko
沒有一個建議的答案實際上解決了這個問題。問題是關於應用程序實例之間的複製和粘貼。建議的答案是在同一應用程序實例中打開的不同工作簿之間進行復制。 –