怎样在AutoCAD的VBA中判断一个EXCEL文件是否已打开
我在写VBA时碰到这个问题:要判断一个EXCEL文件(如:C:\1.xls)是否已打开,若已打开则激活,不然则将其打开.看来是很简单的问题,我却总写不好.请各位高手多多指教,先谢谢了! 思路是当文件以锁定方式打开时,如果文件已经打开就会出错。Sub test()
If IsFileOpened("d:\accountlist.xls") Then
MsgBox "文件已经打开!"
End If
End Sub
Function IsFileOpened(ByVal FileName As String) As Boolean
IsFileOpened = True
' 使用锁定方式打开文件
On Error GoTo ErrTrap
Open FileName For Binary Lock Read Write As #1
IsFileOpened = False
Close #1
Exit Function
ErrTrap:
Close #1
On Error GoTo 0
End Function
谢谢efan大师!
我还有个问题:我在你的代码中加了一行,想激话这个EXCEL文件,结果出错.(已正确引用)
Sub test()
If IsFileOpened("c:\2.xls") Then
MsgBox "文件已经打开!"
Workbooks("c:\2.xls").Activate
End If
End Sub
Function IsFileOpened(ByVal FileName As String) As Boolean
IsFileOpened = True
' 使用锁定方式打开文件
On Error GoTo ErrTrap
Open FileName For Binary Lock Read Write As #1
IsFileOpened = False
Close #1
Exit Function
ErrTrap:
Close #1
On Error GoTo 0
End Function
Workbooks后面的参数必须是一个索引值或者名称(注:名称一般是不包含路径的文件名称),如:2.xls。就是在标题栏上显示的。 to efan大师:我把Workbooks("c:\2.xls").Activate改为Workbooks("2.xls").Activate,还是不行. 1、能不能说明一下运行的环境,是在AutoCAD中运行,还是在Excel中执行。
2、是不是程序运行错误。
3、菜单“工具”-选项-视图中的任务栏中的窗口有没有去掉打勾,即任务栏上只能显示一个Excel的图标。 本帖最后由 作者 于 2004-1-6 22:31:22 编辑
我的问题还没解决啊!我这样又写了一段代码:
Sub CAD_excel()
'先引用EXCEL
Dim ex As Excel.Application
Dim wk As Workbook
Dim wc As Worksheet
Set wk = ex.Workbooks("2.xls") '该文件已先打开
Set wc = wk.Worksheets("sheet1")
wc.Cells(1, 1) = 2
End Sub
还是出错!Set wk = ex.Workbooks("2.xls")
高手啊,快来帮帮我啊!
在efan大师的指导下,搞定了!在此再次表示感谢!!!
页:
[1]