乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 131|回复: 6

怎样在AutoCAD的VBA中判断一个EXCEL文件是否已打开

[复制链接]

46

主题

261

帖子

8

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
445
发表于 2004-1-2 13:39:00 | 显示全部楼层 |阅读模式
我在写VBA时碰到这个问题:要判断一个EXCEL文件(如:C:\1.xls)是否已打开,若已打开则激活,不然则将其打开.看来是很简单的问题,我却总写不好.请各位高手多多指教,先谢谢了!
回复

使用道具 举报

26

主题

589

帖子

10

银币

中流砥柱

Rank: 25

铜币
693
发表于 2004-1-3 21:29:00 | 显示全部楼层
思路是当文件以锁定方式打开时,如果文件已经打开就会出错。
  1. Sub test()
  2.     If IsFileOpened("d:\accountlist.xls") Then
  3.         MsgBox "文件已经打开!"
  4.     End If
  5. End Sub
  6. Function IsFileOpened(ByVal FileName As String) As Boolean
  7.     IsFileOpened = True
  8.    
  9.     ' 使用锁定方式打开文件
  10.     On Error GoTo ErrTrap
  11.     Open FileName For Binary Lock Read Write As #1
  12.     IsFileOpened = False
  13.     Close #1
  14.     Exit Function
  15.    
  16. ErrTrap:
  17.     Close #1
  18.     On Error GoTo 0
  19. End Function
回复

使用道具 举报

46

主题

261

帖子

8

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
445
发表于 2004-1-3 22:09:00 | 显示全部楼层
谢谢efan大师!
我还有个问题:我在你的代码中加了一行,想激话这个EXCEL文件,结果出错.(已正确引用)
  1. Sub test()
  2.     If IsFileOpened("c:\2.xls") Then
  3.         MsgBox "文件已经打开!"
  4.         [color=red]Workbooks("c:\2.xls").Activate[/color]
  5.     End If
  6. End Sub
  7. Function IsFileOpened(ByVal FileName As String) As Boolean
  8.     IsFileOpened = True
  9.    
  10.     ' 使用锁定方式打开文件
  11.     On Error GoTo ErrTrap
  12.     Open FileName For Binary Lock Read Write As #1
  13.     IsFileOpened = False
  14.     Close #1
  15.     Exit Function
  16.    
  17. ErrTrap:
  18.     Close #1
  19.     On Error GoTo 0
  20. End Function
回复

使用道具 举报

26

主题

589

帖子

10

银币

中流砥柱

Rank: 25

铜币
693
发表于 2004-1-3 22:56:00 | 显示全部楼层
Workbooks后面的参数必须是一个索引值或者名称(注:名称一般是不包含路径的文件名称),如:2.xls。就是在标题栏上显示的。
回复

使用道具 举报

46

主题

261

帖子

8

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
445
发表于 2004-1-4 21:20:00 | 显示全部楼层
to efan大师:我把Workbooks("c:\2.xls").Activate改为Workbooks("2.xls").Activate,还是不行.
回复

使用道具 举报

26

主题

589

帖子

10

银币

中流砥柱

Rank: 25

铜币
693
发表于 2004-1-4 22:41:00 | 显示全部楼层
1、能不能说明一下运行的环境,是在AutoCAD中运行,还是在Excel中执行。
2、是不是程序运行错误。
3、菜单“工具”-选项-视图中的任务栏中的窗口有没有去掉打勾,即任务栏上只能显示一个Excel的图标。
回复

使用道具 举报

46

主题

261

帖子

8

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
445
发表于 2004-1-6 21:32:00 | 显示全部楼层

我的问题还没解决啊!我这样又写了一段代码:
  1. Sub CAD_excel()
  2. '先引用EXCEL
  3. Dim ex As Excel.Application
  4. Dim wk As Workbook
  5. Dim wc As Worksheet
  6. Set wk = ex.Workbooks("2.xls")   '该文件已先打开
  7. Set wc = wk.Worksheets("sheet1")
  8. wc.Cells(1, 1) = 2
  9. End Sub

还是出错!Set wk = ex.Workbooks("2.xls")
高手啊,快来帮帮我啊!
在efan大师的指导下,搞定了!在此再次表示感谢!!!
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-15 10:35 , Processed in 3.224249 second(s), 67 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表