| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 885 人关注过本帖
标题:如下,判断指定的excel文件是否打开,如果打开,则关闭。但关闭时出错”下标 ...
只看楼主 加入收藏
lgq1001
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2023-9-8
结帖率:0
收藏
已结贴  问题点数:20 回复次数:3 
如下,判断指定的excel文件是否打开,如果打开,则关闭。但关闭时出错”下标越界

如下,判断指定的excel文件是否打开,如果打开,则关闭。但关闭时出错”下标越界“,请大侠帮忙解决一下,谢谢。

Sub test()
  Dim f As String
  f = "C:\Users\Administrator\Desktop\test.xlsx"
  bl = IsFileOpen(f)
  If bl Then
    MsgBox "打开"
    Excel.Workbooks("test.xlsx").Close False
  Else
    MsgBox "没有打开"
  End If
end sub

Function IsFileOpen(filename As String) As Boolean
      Dim filenum As Integer, errnum As Integer
      On Error Resume Next
      filenum = FreeFile()
      Open filename For Input Lock Read As #filenum
      Close filenum
      errnum = Err
      On Error GoTo 0
      Select Case errnum
          Case 0: IsFileOpen = False
          Case 70: IsFileOpen = True
          Case Else: Error errnum
      End Select
  End Function
搜索更多相关主题的帖子: Case excel End 关闭 打开 
2023-09-08 18:26
约定的童话
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:56
帖 子:246
专家分:1442
注 册:2021-8-1
收藏
得分:10 
excel进程没有创建,需要先创建excel进程才能关闭。。。。
2023-09-09 16:00
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4943
专家分:30047
注 册:2008-10-15
收藏
得分:10 
不是创建 excel 进程,而是 引用 excel 进程
前面已判断这个文件已打开,那么说可以认为 excel 已在运行,需要引用它,
  然后操作关闭文件。
如果是创建新的 excel 进程,得到的新进程,它这时是没有打开任何工作簿的。

在引用 excel 进程后,也要判断一下是否存在错误,如果错误,说明 文件不是用 excel 打开的。



授人于鱼,不如授人于渔
早已停用QQ了
2023-09-09 17:49
yuma
Rank: 12Rank: 12Rank: 12
来 自:银河系
等 级:贵宾
威 望:37
帖 子:1932
专家分:3012
注 册:2009-12-22
收藏
得分:0 
进程存在即打开,进程不存在即关闭。


心生万象,万象皆程序!
本人计算机知识网:http://bbs.为防伸手党,本站已停止会员注册。
2023-10-25 10:57
快速回复:如下,判断指定的excel文件是否打开,如果打开,则关闭。但关闭时出错 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.011193 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved