建立驱动器列表框、目录列表框和文件列表框,并将其组合。建立一command按钮,编写代码如下,比较简单,就不加说明了。
Private Sub Command1_Click()
Dim m As String, p As Integer
For i = 0 To File1.ListCount
m = File1.List(i)
p = InStr(1, m, ".")
m = Left(m, p - 1) '这行提示出错了
Print m
Next i
End Sub
运行时虽然也显示文件名,但提示“实时错误5:无效的过程调用或参数”。如果我把“m = Left(m, p - 1)”改成“m = Left(m, p)”就不提示出错了,但显示的文件名后面多了个点。
请问问题出在哪里,应该怎么改一下才能只显示文件名不显示点?
6 个解决方案
#1
你没有处理两个特殊的路径名 "." 和 ".."。
#2
不明白你的意思。我是新手,能说具体点吗,需要怎么改代码才行?谢谢
#3
打印p值看看,应该是0,这就造成了left(m,-1)肯定出错
debug.print p
debug.print p
#4
m = Left(m, p - 1) 把这行添加一个判断语句
if p>1 then m=left(m,p-1)
if p>1 then m=left(m,p-1)
#5
最后一个数是显示0了,比如说有3个文件,显示了4个数,前三个数对应三个文件,都正常,第四个数是0。
那我应该怎么改动一下呢?
#6
你先检查 m 是不是"." 或 "..",这两个忽略不用处理。
#1
你没有处理两个特殊的路径名 "." 和 ".."。
#2
不明白你的意思。我是新手,能说具体点吗,需要怎么改代码才行?谢谢
#3
打印p值看看,应该是0,这就造成了left(m,-1)肯定出错
debug.print p
debug.print p
#4
m = Left(m, p - 1) 把这行添加一个判断语句
if p>1 then m=left(m,p-1)
if p>1 then m=left(m,p-1)
#5
最后一个数是显示0了,比如说有3个文件,显示了4个数,前三个数对应三个文件,都正常,第四个数是0。
那我应该怎么改动一下呢?
#6
你先检查 m 是不是"." 或 "..",这两个忽略不用处理。