问题开excel2007年新的实例,使用VBA(使用OLE和约束对象框架)
-
22-07-2019 - |
题
我有问题的创新实例excel2007使用VBA(从入2002年)。
在第一我被误解的问题和更复杂的比我想象的。
Set myXL = CreateObject("Excel.Application")
创造了新的进程(我认为它没有),但是仍然奇怪的事情发生。我用OLE储存Excel文件SQL服务器数据库.
这是功能限制的excel文件的形式:
Public Function OpenExcelObjFrame() As BoundObjectFrame
Dim myXL As Object
Set myXL = CreateObject("Excel.Application") '#1
Set gTempWorkbook = myXL.Workbooks.Add
myXL.Visible = True '#2
DoCmd.OpenForm "Excel_OBJ"
Forms("Excel_OBJ").Visible = False
Forms("Excel_OBJ").RecordSource = "SELECT Excel_File FROM Excel_File_Obj;"
Set OpenExcelObjFrame = Forms("Excel_OBJ").Excel_File
End Function
下:
Dim tExcelObjFrame As BoundObjectFrame
Set tExcelObjFrame = OpenExcelObjFrame()
tExcelObjFrame.Verb = acOLEVerbOpen
tExcelObjFrame.Action = acOLEActivate '#3
ad1 2流程excel.exe 开始
ad2 加入这一行检查什么是发生在2号程
广告3 OLE界限的文件现有的excel的实例,第2过程中被杀死在这里:/
所以问题是:
为什么tExcelObjFrame.Action=acOLEActivate杀死2过程
如何以武力对象的框架,以激活excel文件中的第2流程
编辑
我已经找到部分解释这里的(没有明确的解决方案):
http://www.xtremevbtalk.com/showthread.php?t=292170
- 如果没有Excel实例是运行、OLE创建一个实例Excel时访问的对象,无论是直接或通过编程。
- 如果一个Excel实例是已经运行,那么这是一个实例是使用由OLE对象。
问题是,OLE对象的选择是错误的excel的实例。问题是如果有一种方法来点OLE到一个具体实例。
同样的问题,这里所描述的(没有办法解决定):
其他提示
Sub New_Excel()
'Create a Microsoft Excel instance via code using late binding. (No references required)
Dim xlApp As Object
Dim wbExcel As Object
'Create a new instance of Excel
Set xlApp = CreateObject("Excel.Application")
'Open workbook
Set wbExcel = xlApp.Workbooks.Open("Book1") 'or you may place here the complete name and path of the file you want to open upon the creation of the new instance
'Set the instance of Excel visible. (It's been hiding until now)
xlApp.visible = True
'Release the workbook and application objects to free up memory
Set wbExcel = Nothing
Set xlApp = Nothing
End Sub
我有类似问题,只是时候试图打开的多个工作簿中的各个Excel2007年实例-在Excel2003年这个工作很好,但现在他们都在同一个实例。
我不知道这会解决你的问题太多,但我固定的(或作出其工作的方式,我想要!) 告诉Excel不使用DDE(选项、先进的、普遍的、忽略的其他应用程序使用DDE)。注意,如果你做了这个,你会需要改变所有的文件种类在资源管理器,开始为他们使用DDE默认情况下编辑的文件的选择,取消"使用DDE"和添加"%1"结束的命令行。
(实际上,我认为,可能回答一个评论是从安迪的回答,其中只有一个Excel实例是正在建立,但是不一定有助于与原来的问题,其中多个实例, 都 打开)
不隶属于 StackOverflow