我遇到了最奇怪的问题。前几天我在笔记本电脑上写了下面的代码,效果很好。现在,我正在我的桌面上对其进行测试,但它已停止工作。
首先,这是我的代码
Dim oApp As Application
Dim oWb As Workbook
Set oApp = New Application
oApp.Visible = True
Set oWb = oApp.Workbooks.Open(Filename:="C:\myFile.xlsx", ReadOnly:=True)
debug.print oWb.name
'returns "SOLVER.XLAM"
' "SOLVER.XLAM" is not "myFile.xlsx'
debug.print oApp.Workbooks.Count
'returns 1
debug.print oApp.Workbooks(1).name
'returns "myFile.xlsx"
现在,我知道求解器是一个插件,它会在创建它时加载到新应用程序中......但是它是如何执行这个切换的呢?我仍然可以找到正确的文件,但我不想冒险碰巧我的 Application 对象中只有一个文件(或者第一个文件是我加载的文件)
附加信息
我正在调用从 excel 实例中执行此宏,并且我希望打开一个单独的 excel 实例,然后"C:\myFile.xlsx"
在该其他实例中打开特定的工作簿 ()。
我遇到的关键问题是,当我打开另一个实例然后添加工作簿并将其设置为我的 oWb 变量时......不知何故,当我后来调用该 oWb 变量时,它指的是与我设置的不同的东西至。
'This is how it makes me feel:
Dim x As Integer
x = 5
Debug.Print x
' 12