gpt4 book ai didi

excel - 将整个工作表从一个 Excel 实例复制到另一个

转载 作者:行者123 更新时间:2023-12-04 20:16:26 25 4
gpt4 key购买 nike

根据this article ,您不能将工作表从一个 Excel 实例移动或复制到另一个。不幸的是,这是我必须使我的程序正常运行的唯一方法。

我有 2 个 Excel 实例:一个由我们古老的 ERP 系统运行,另一个通过 OLE 调用运行。在第二个实例中运行的宏应该将第一个工作表从打开的工作簿 ( ThisWorkbook ) 复制到在第一个实例中打开的工作簿 ( Wb )。我正在使用 ForEachLoop's solution获取 Wb :

Public Function GetExcelObjectFromHwnd(ByVal hWnd As Long) As Boolean
...
If AccessibleObjectFromWindow(hWnd, OBJID_NATIVEOM, iid, obj) = 0 Then 'S_OK
Dim objApp As Excel.Application
Set objApp = obj.Application
Dim Wb As Workbook
For Each Wb In objApp.Workbooks
ProcessWorkbook Wb
Next Wb

fOk = True
End If
...
End Function

Sub ProcessWorkbook(Wb as Worksheet)
...
'This produces error because ThisWorkBook and Wb are opened in different instances of Excel:
ThisWorkbook.Sheets(1).Copy , Wb.Sheets(1)
'What I developed so far
Wb.Sheets.Add , Wb.Sheets(1)
'this doesn't work too:
ThisWorkbook.Sheets(1).UsedRange.Copy Wb.Sheets(2).Range("A1")
'and this works but doesn't copy formatting:
With ThisWorkbook.Sheets(1).UsedRange
Wb.Sheets(2).Range("A1").Resize(.Rows.Count, .Columns.Count) = .Value
End With
' later I perform some operations with cells
...
End Sub

你可以猜到,我首先尝试使用 Worksheet.Copy然后方法 Range.Copy方法,它们都不起作用。直接范围分配只复制值,我还需要复制格式。

因此,显然,复制格式的解决方案是合适的,但如果有任何方法,我更喜欢直接复制。另外,请不要建议使用剪贴板,因为它总是坏主意。

最佳答案

我建议你SaveAs您的工作簿从 Excel 实例 A 到临时文件,然后在 Excel 实例 B 中打开此临时文件以复制您需要的工作表。

关于excel - 将整个工作表从一个 Excel 实例复制到另一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24075427/

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