vb 选择需要的excel工作簿

来源:百度知道 编辑:UC知道 时间:2024/06/11 01:07:36
同时打开了 1.xls 2.xls 3.xls excel 文件,在vb 中 如何用代码选中其中需要的一个进行操作?? 给出下面代码,请高手帮忙
IsFileAlreadyOpen(1.xls)函数是判断 文件是否打开
问题是假如path 已经打开的话
Set xlapp = GetObject(path).Application
只是给 xlapp 赋予excel 属性 而不能直接激活 1.xls
可能是 2.xls 也可能是 3.xls
怎么才能使用代码来选择呢??
windows.active 无效

If IsFileAlreadyOpen(path) Then
Set xlapp = GetObject(path).Application
Set xlapp = New Excel.Application
Set xlBook = xlapp.Workbooks.Open(path)
Else
Set xlapp = CreateObject("Excel.Application") '创建EXCEL应用类"
Set xlBook = xlapp.Workbooks.Open(path)
End If
If IsFileAlreadyOpen(path) Then
Set xlapp = GetObject(path).Application
'Set xlapp = New Excel.Application
Set xlBook = xlapp.Workbooks.Open(path)
Else
Set xlapp = CreateObject("Excel.Application") '创建EXCEL应用类"
Set xlBook = xlapp.Workbooks.Open(path)
End If

这样会打开一个新的exc

由于代码不全,我自建工程试了你的问题.你自己代入吧.
主要原因application下有好多window,所以不能直接激活,获取application后要指定windows索引(如Command2下的代码).
Application.Visible = True也很重要
可以通过激活工作薄的方法激活(如Command1下的代码),推荐用这种.

以下两种方法我均经过调试可以实现
Private Sub Command1_Click()

Dim Wb As Excel.Workbook
Set Wb = GetObject("d:\Book2.xls")
Wb.Application.Visible = True
Wb.Activate
End Sub

Private Sub Command2_Click()

Dim Wb As Excel.Application
Set Wb = GetObject("d:\Book2.xls").Application
Wb.Visible = True
Wb.Windows(1).Activate
Wb.Windows(2).Activate
End Sub

If IsFileAlreadyOpen(path) Then
Set xlapp = GetObject(path).Application
'Set xlapp = New Excel.Application
Set xlBook = xlapp.Workbooks.Open(path)
Else
Set xlapp = CreateObject("Excel.Application") '创建EXCEL应用类"
Set xlBook = xlapp.Workbooks.Open(path)
End If

If IsFileAlreadyOpen