文件是否已经打开?

这是看的不知哪位大哥的代码
Function IsOpen(sFile As String) As Boolean
Dim fFile As Integer
IsOpen = False
fFile = FreeFile() ‘打开方式
On Error GoTo ErrOpen
Open sFile For Binary Lock Read Write As fFile ’????
Close fFile
Exit Function ????这为什么退出了呢
ErrOpen:
If Err.Number <> 70 Then ??这个错误号代表??
Msg = "Error # " & Str(Err.Number) & " was generated by " _
& Err.Source & Chr(13) & Err.Description
MsgBox Msg, , "Error", Err.HelpFile, Err.HelpContext
Else
IsOpen = True
End If
End Function

总之这个函数看的我有点转向,呵呵,小弟实在是笨啊,不理解??
请各位指点一下
[635 byte] By [xl_0715] at [2008-3-14]
# 1
Exit Function ????这为什么退出了呢
ErrOpen:
=====================================================
后面是错误处理,如果没发生错误当然就可以退出函数了

If Err.Number <> 70 Then ??这个错误号代表??
==========================================================
试试if err.number=70 then msgbox Err.Description
boywang-大力水手 at 2007-10-26 > top of Msdn China Tech,visual basic,基础类...
# 2
可以参考我的文章:

写了个判断文件是否被锁定的函数 --- 有用!
http://blog.Codefund.cn/tanaya/archive/2004/09/03/93571.aspx

# 3
谢大哥的解释 可是……

Exit Function ????这为什么退出了呢
ErrOpen:
=====================================================
后面是错误处理,如果没发生错误当然就可以退出函数了
===================================================
这个我知道了,只是最想知道的是这儿
Open sFile For Binary Lock Read Write As fFile //知道是以二进制打开文件,,那这三个是做什么的呢 {lock read write}

我这样理解这个函数对不对呢

是先打开一个文件,如果文件已经打开,就进行错误处理

可还是不知道为什么将错误号定位70?????

xl_0715 at 2007-10-26 > top of Msdn China Tech,visual basic,基础类...
# 4
HOT 21:21:54Public Function IsFileOpen(sFile As Variant) As Boolean
Dim fFile As Integer
Dim msg As String
fFile = FreeFile()
On Error GoTo ErrOpen
Open sFile For Binary Lock Read Write As fFile
Close fFile
Exit FunctionErrOpen:

If Err.Number <> 70 Then
msg = "Error # " & Err.Number & " was generated by " _
& Err.Source & Chr(13) & Err.Description
MsgBox msg, , "Error", Err.HelpFile, Err.HelpContext
Else
IsFileOpen = True
End IfEnd Function

HOT 21:22:06
直接调用就好了
xl_0715 at 2007-10-26 > top of Msdn China Tech,visual basic,基础类...
# 5
//Exit Function ????这为什么退出了呢
说明文件可以正常打开,判断完毕,函数完成任务,当然就要退出拉
// ??这个错误号代表??
(错误 70)

试图对写保护的磁盘进行写操作,或要访问加锁文件。此错误有以下的原因和解决方法:

为顺序 Output 或 Append 写,打开一个写保护文件。
用 Input 方式打开文件,或者修改文件的写保护属性。

用顺序 Output 或 Append 方式,打开有写保护的磁盘上的文件。
从磁盘上删除写保护,或者使用 Input 方式文件。

写入已被其他进程锁定的文件。
等其他进程释放后再打开此文件。

试图访问注册表,但用户权限不包括此类注册表访问。
在 32 位 Microsoft Windows 系统上,用户必须有访问当前系统注册表的权限。改变用户权限,或由系统管理员来修改。