gpt4 book ai didi

vba - 如何在 VBA 中的两个打开的 Excel 实例之间进行复制?

转载 作者:行者123 更新时间:2023-12-02 01:52:22 24 4
gpt4 key购买 nike

我想将数据从一个已打开的 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”:Range 类的复制方法失败

如何在 VBA 中将数据从一个已打开的 Excel 实例复制到另一个 Excel 实例?

我知道当它们属于同一实例时如何执行此操作。在这种特殊情况下,我需要将两个工作簿放在不同的实例中。我还需要做一个完整的副本(数据验证、公式、值、格式等),所以 r2.Value = r1.Value 是不够的。

最佳答案

让两个 Excel 实例在所有情况下都能够相互通信是很困难的。您可以找到其他正在运行的实例,但需要考虑的事情太多。

在类似的情况下,我会保持简单并制作两个按钮:

  • 导出,保存到 Clipboard.csv 或 Clipboard.xlsx 或其他内容设置您想要复制的数据的格式
  • 导入,从剪贴板临时文件中获取数据

用户负责单击一个实例上的“导出”按钮,然后单击第二个实例上的“导入”按钮。

关于vba - 如何在 VBA 中的两个打开的 Excel 实例之间进行复制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7867939/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com