Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

回复 加入收藏帖  复制
我要提问 帖子上移

如何判断工作簿已经打开(access里的VBA)

linmeici 等级: 普通会员 积分:0 金币:0 来自:泉州Access交流中心 发表于:2018-03-12 22:20:33  
楼主

---------判断一个工作簿是否已经打开.下面代码在ACCESS的VBA里运行有问题.恳请各位高手给予指教,学生在先行谢过了!!!!!!
附件:
 判断工作簿是否已经打开.rar (50.13 KB, 下载次数: 1) 

Sub Com()
'On Error Resume Next    '延迟错误捕获。
Set xlapp = CreateObject("excel.application")
Set app = GetObject(, "excel.application")              '返回文件中的 ActiveX 对象的引用。(注意:必须先经过创建APPLICATION对象后,GETOBJECT才能返回这个对象,否则返回结果为空)
Set book = app.workbooks
        Dim ss As Object
        a = book.Count      ----------------这里有问题,当我手工打开"报销单"这个工作簿时,这里可以统计得到包含这个工作簿的个数,当我用OPEN命令打开工作簿时,就统计不到这个工作簿,也无法都取得这个工作簿的名称,从而无法判断这个工作簿是否已经打开.  
If a = 0 Then
    xlpath = CurrentProject.Path & "\报销单.xlsx"
    xlapp.workbooks.Open xlpath, readonly:=False
    xlapp.Visible = True
Else
    For Each ss In book
        If ss.Name = "报销单.xlsx" Then        --------通过OPEN命令打开,在这里取不到工作簿名称
            MsgBox "已打开"
        Else
            xlpath = CurrentProject.Path & "\报销单.xlsx"
            xlapp.workbooks.Open xlpath, readonly:=False
            xlapp.Visible = True         
         End If
    Next
End If
End Sub

 

access培训  诚聘access开发人员

    linmeici
      获得社区协助:请教问题(即发帖)4篇,其中获得解决的1篇;
      协助社区成员:协助他人(即回帖)0篇,其中被设为【最佳答案】的0篇;
      协助我们社区:发布技术文章0篇,邀请了0名新会员注册本社区(如何邀请会员注册,详见:http://www.accessoft.com/sitehelp.asp)。
Top
linmeici 等级:普通会员 积分:0 金币:0 来自:泉州Access交流中心 发表于2018/3/13 13:26:01 
1楼 得分: 0
自己找到解决方法了,加入一句:

app.activewindow.caption="报销单.xlsx"

就可以找到通过OPEN打开的工作簿名称了.



    linmeici
      获得社区协助:请教问题(即发帖)4篇,其中获得解决的1篇;
      协助社区成员:协助他人(即回帖)0篇,其中被设为【最佳答案】的0篇;
      协助我们社区:发布技术文章0篇,邀请了0名新会员注册本社区(如何邀请会员注册,详见:http://www.accessoft.com/sitehelp.asp)。
总记录:1篇  页次:1/1 9 1 :
您还没有在Access软件网登录不能回复帖子
  • 你没有登录,请点击后面链接登录:登录
  • 如果你没有注册,请点击后面链接注册:注册,注册完成后,请再次访问本页功能。