VB编程之End Function

来源:百度知道 编辑:UC知道 时间:2024/05/10 08:07:01
出错的程序如下:
Sub Findfile(getPath As String)
Dim mypath As String
Dim myname As String
Dim mydirectory() As String
Dim i, intresult As Integer
mypath = getPath
If mypath = "" Then End Function
intresult = 2
ReDim mydirectory(intresult)
mydirectory(1) = mypath
i = 1
Do Until mydirectory(i) = ""
mypath = mydirectory(i)
If Right(mypath, 1) <> "\" Then mypath = mypath & "\"
myname = Dir(mypath, vbDirectory)
Do While myname <> ""
If myname <> "." And myname <> ".." Then
If (GetAttr(mypath & myname) And vbDirectory) = vbDirectory Then mydirectory(intresult) = mypath & myname
intresult = intresult + 1
ReDim Preserve mydirectory(intresult)
Else
List1.AddItem mypath & myname
End If
End If
myname = Dir
Loop
i = i + 1
Loop
End Sub
编译时总是提示“expected end s

1.将
If mypath = "" Then End Function

改为
If mypath = "" Then Exit Sub

2.去掉两个 End If 中的一个(在 myname = Dir 的上面)

Do Until mydirectory(i) = ""
这一句有问题,until 好像应该出现在Loop 后面。
If mypath = "" Then End Function

改为
If mypath = "" Then Exit Sub

Sub Findfile(getPath As String)

Dim mypath As String

Dim myname As String

Dim mydirectory() As String

Dim i, intresult As Integer

mypath = getPath

If mypath = "" Then End Sub
intresult = 2
ReDim mydirectory(intresult)
mydirectory(1) = mypath
i = 1

Do Until mydirectory(i) = ""
mypath = mydirectory(i)

If Right(mypath, 1) <> "\" Then mypath = mypath & "\"
myname = Dir(mypath, vbDirectory)