小白求助:VB遍历已打开的excel文件名
程序代码:
Option Explicit Public xlapp As excel.Application Private Sub Command1_Click() Dim i% Dim fn As String Dim mywb Dim fn1 fn = app.path & "\调试初始化\各国家中重卡采购明细汇总表.xlsx" fn1 = "各国家中重卡采购明细汇总表.xlsx" On Error Resume Next Set xlapp = GetObject(, "excel.application") If Not xlapp Is Nothing Then For i = 1 To xlapp.Workbooks.Count '统计不了程序打开的文件,打开了4个文件,但统计数只有3个 If LCase(xlapp.Workbooks(i).FullName) = LCase(fn) Then '识别不到程序打开的文件 xlapp.Workbooks(fn).Activate Set mywb = xlapp.Workbooks(fn1) Exit For End If Next i If mywb Is Nothing Then Set xlapp = CreateObject("excel.application") Set mywb = excel.Workbooks.Open(App.Path & "\各国家中重卡采购明细汇总表.xlsx") xlapp.Visible = True End If Else Set xlapp = CreateObject("excel.application") Set mywb = excel.Workbooks.Open("" & App.Path & "\各国家中重卡采购明细汇总表.xlsx") xlapp.Visible = True End If End End Sub '实现的功能:判断所需文件是否打开,如果打开了就激活文件。如果没有打开则打开再激活。 '存在问题:手动打开所需的文件,再次启动程序时可以识别到所需文件已经打。 ' 但是程序自己打开所需文件,再次运行程序时就识别不到所需文件已经打开,仍然会再次打开所需文件(只读)。 '程序打开的文件名称是这种“microsoft excel-文件名.xlsx”,可能因为这个,程序在下次判断时就识别不到自己打开的文件。