2015-03-31 249 views
0

不知道有多少人知道支持.Net框架的 WinWrap Basic language。但那是我的问题所在。希望有人知道这门语言。WinWrap CreateObject(“Excel.Application”)多个实例

我正在使用它与Excel 2010进行通信。基本上,我正在提取专有数据格式的数据并将其分发到Excel。在脚本运行期间没有附加的Microsoft Excel 2010实例处于活动状态时,以下执行完美。

xExcel = CreateObject("Excel.Application") 
xBook = xExcel.Workbooks.Open(XLFilePath) 
xSheet = xBook.Worksheets(“Sheet1”) 
xExcel.Visible = False 
xSheet.Cells(1,1).Value = "Study Name" 

但是,如果在以下脚本运行期间由用户手动激活了其他Excel 2010实例,则会出现脚本错误。

xExcel = CreateObject("Excel.Application") 
xBook = xExcel.Workbooks.Open(XLFilePath) 
xSheet = xBook.Worksheets(“Sheet1”) 
xExcel.Visible = False  
Do 
    xSheet.Cells(1,1).Value = "Study Name" 
Loop 

WinWrap的人说WinWrap中的CreateObject()是一个调用CoCreateInstance API的简单代码。我有点失落了。有人可以帮助我了解如何创建多个Excel实例。

编辑 我得到运行时50290应用程序特定错误

+0

你应该提一下在哪行代码中会出现什么样的错误。为什么第二个代码示例中的无限循环?也许这是错误的原因? – 2015-04-01 05:15:19

+0

没有无限循环只是模拟我的脚本运行一段时间做不同的事情,而有人会手动操作Excel。我实际上并没有在我的代码中有一个无限循环。我得到运行时50290应用程序特定的错误。 – RahulD 2015-04-01 22:47:22

回答

0

你有没有试过GetObject?

Dim objExcel As Object 
On Error Resume Next 
Set objExcel = GetObject(, "Excel.Application") 
With objExcel 
    'do something 
End With