我有一份 Avizo.xlt,其中包含一个工作表和一个代码,该代码旨在将此 WS 放入已打开的文档中,该文档是我们古老的 ERP 系统制作的 SLK 报告,然后关闭该文档。
2007 年之前,所有功能在用户桌面上都运行良好。我的代码:
Public Sub format_avizo3()
On Error Resume Next
Dim Wb As Workbook
For Each Wb In Workbooks
Select Case Wb.Worksheets(1).Cells(1, 1)
Case "F004CP000V001", "F004CP000V003", "F004CP000V004":
ThisWorkbook.Worksheets(1).Range("A1:I22").Copy
'some extra code
End Select
Next Wb
ThisWorkbook.Close False
End Sub
现在,新建文档的 Excel 看不到已打开的 Excel。我该如何强制它找到自己?
解决方法:在流程开始前保持 Excel 打开,它就会起作用。
答案1
不幸的是,这是系统限制,没有快速的解决方案。
您可以在一个 Excel 实例中打开所有工作簿,也可以使用 中的解决方案ForEachLoop
。虽然涉及大量代码,但这种方法有效。请点击以下链接了解更多详细信息:
https://stackoverflow.com/questions/2971473/can-vba-reach-across-instances-of-excel