注册 登录
编程论坛 VB6论坛

VB如何判断EXCEL文件是否打开

燕之峰 发布于 2014-03-22 13:49, 10362 次点击
各位网友好,VB操作EXCEL文件程序是常用的。有这样一个问题,VB在进行对EXCEL文件操作时,有时EXCEL文件未打开,有时EXCEL文件已打开,这两种情况操作代码应有所不同。请问,VB如何判断一EXCEL文件是否打开(可判断在程序文件内的EXCEL文件,用相对路径)。1如未打开如何打开写入内容,保存退出。2如已打开,如何进行写入内容,保存退出。
请指导,谢谢
我是新会员,不知帖子给多少分,如分少,请谅解。
5 回复
#2
chen35232014-03-22 14:07
我每当调用Excel把它设置为可见,就可以进行所有的操作了。格式如下:
Set xlapp = CreateObject("excel.application")
Dim xlBook As Object
Dim xlSheet As Object     '建立excel对象的工作薄对象
Set xlBook = xlapp.Workbooks.Add     '建立excel对象的工作表对象
Set xlSheet = xlBook.Worksheets(1)    '下面将DATAGRID中数据导出到EXCEL中
.
.
xlapp.Visible = True
#3
燕之峰2014-03-22 15:48
EXCEL文件有可能打开也有可能未打开,要先判断EXCEL文件是否打开,然后再进行相应的操作。但不知如何书写代码
#4
chen35232014-03-22 17:21
不知道了

[ 本帖最后由 chen3523 于 2014-3-22 17:23 编辑 ]
#5
w3609894262014-03-22 18:19
Set excel1 = New Excel.Application
    excel1.Visible = False
    excel1.Workbooks.Open (App.Path & "\程序模版.xls")
    excel1.Workbooks("程序模版.xls").Sheets("发货单").Name = "采购订单"
    excel1.Workbooks("程序模版.xls").Sheets("采购订单").Select
    If excel1.Workbooks("程序模版.xls").ReadOnly = True Then‘这行主要判断是否已打开,判断是ture那么就是已经打开的。。
        excel1.DisplayAlerts = False
        excel1.Application.Quit
        excel1.DisplayAlerts = True
        MsgBox "你已经打开“程序模版.xls”" & Chr(13) & "请关闭原有的“程序模版.xls”。", vbOKOnly, "错误提示"
        excel1.Visible = True
        Exit Sub
    Else
        excel1.Workbooks("程序模版.xls").Sheets("采购订单").Range("A2").CopyFromRecordset Adodc1.Recordset
    End If
才5分太少了。。。。。
#6
西门家的猫2021-08-18 19:39
来个简单的~

'检查工作表是否已被打开了(利用打开后是否为只读状态判断)
dim Excel应用 as Excel.Application '创建一个Excel应用对象
dim 指定工作簿 as Excel.Wookbook '创建一个Excel工作簿对象
Excel应用=CreatObject("Excel.Application") '生成这个Excel对象
 指定工作簿=Excel应用.Open("D:\工作簿1.xlsx") '将这个工作薄赋值到指定的工作簿(并打开)
If 指定工作簿.ReadOnly = True Then  '判断当前这个工作簿的打开模式是不是只读
    Msgbox("文件已被打开(当前处于只读模式)") '如果是,则说明文件已经被其他应用(或客户端)打开了
End If
1