明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1203|回复: 7

cadvba如何做到能判断出这个cad文件夹里面有一个excel是否处于打开状态

[复制链接]
发表于 2018-5-16 07:27 | 显示全部楼层 |阅读模式
如题,cadvba如何做到能判断出这个cad文件夹里面有一个excel是否处于打开状态,或者CAD VBA如何定义一个变量,本次运行一次程序为一个固定值,下次重新运行该程序还是上次值,这样我第一次打开Excel时赋值给一个变量,下次再打开时判断这个变量值就知道CAD有没有打开了
发表于 2018-5-16 09:04 | 显示全部楼层
两码事,是不是正处于打开状态,以及是不是被打开过。
很多因素会导致这个判断不准确,建议楼主给出最终目的,然后再想个更稳妥的方法。
 楼主| 发表于 2018-5-16 10:06 | 显示全部楼层
mikewolf2k 发表于 2018-5-16 09:04
两码事,是不是正处于打开状态,以及是不是被打开过。
很多因素会导致这个判断不准确,建议楼主给出最终目 ...

这样吧,Excel正处于打开状态,可以边运行VBA程序边往Excel里面写数据吗,之前我编的程序启动一次程序就要打开一次Excel,这样很不方便
发表于 2018-5-16 11:15 | 显示全部楼层
不打开excel怎么往里面写东西?用getobject获得excel对象,不要createobject。具体看链接excel的例子。

点评

这个思路是正确的,肯定能解决问题,连接好以后再遍历一下已经打开的EXCEL文档,就能知道是否已经打开了。  发表于 2018-5-16 13:59
 楼主| 发表于 2018-5-16 12:38 来自手机 | 显示全部楼层
回头试试,多谢了
发表于 2018-9-26 13:01 | 显示全部楼层

Set excellapp = GetObject(, "Excel.Application")     ' 连接Excel应用程序
    If excellapp Is Nothing Then
        Thisdrawing.Utility.Prompt "Excel应用程序未运行或为不支持的版本,请先打开表格再进行操作。" & vbCrLf
        GoTo lb1
    End If
发表于 2018-9-30 18:47 | 显示全部楼层
调用FileOpenExists函数判断表格文件是否打开
用法:
if FileOpenExists("d:\test.xls") then
        msgbox "文件已经打开"
else
        msgbox "文件没有打开"
endif
注意:如果系统中有多个EXCEL实例时例外(需将GetObject带上文件完整路径)

Private Function FileOpenExists(FilePath As String) As Boolean
Dim objExcelApp As Object
Dim objBook As Object
Dim objBooks As Object

Set objExcelApp = GetObject(, "Excel.Application") '获得系统中运行的EXCEL对象
Set objBooks = objExcelApp.Workbooks '获得工作薄集合

For Each objBook In objBooks '循环每个工作簿的完整路径,判断是否文件是否打开
    If UCase(FilePath) = UCase(objBook.fullname) Then '如果找到
        FileOpenExists = True '返回真
        Exit For '退出循环
    End If
    Debug.Print objBook.fullname '显示完整路径
Next
End Function



GetObject语法简介
GetObject([pathname] [, class])
pathname 可选的;Variant (String)。包含待检索对象的文件的全路径和名称。如果省略 pathname,则 class 是必需的。
如果 pathname 是一个零长度的字符串 (""),则 GetObject 返回指定类型的新的对象实例。如果省略了 pathname 参数,则 GetObject 返回指定类型的当前活动的对象。如果当前没有指定类型的对象,就会出错。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-4-20 17:54 , Processed in 0.183448 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表