以下是引用爱疯在2010-5-27 9:48:00的发言:
Sub Button1_Click() Sheet1.Range("b1:d1000").ClearContents Dim i As Integer
i = 1 Sheet1.Range("b" & i) = Dir("E:\New Folder (2)\")
For i = 2 To 200 '一旦返回值为零长度字符串,并要再次调用 Dir 时,就必须指定 pathname,否则会产生错误。 If Dir = "" Then Exit For Sheet1.Range("b" & i) = Dir Next i
tr = Sheet1.Range("b65535").End(xlUp).Row Dim j As Integer For j = 1 To tr Sheet1.Range("b" & j) = Left(Sheet1.Range("b" & j), 7) Next End Sub
汗。。。你这个方法有问题的。正确的应该是我的那段代码。 If Dir = "" Then,这里执行了一次Dir进行判断,到后面Sheet1.Range("b" & i) = Dir 又进行了一次Dir,两次结果其实是不一样的....这样你就会跳过某些文件名。 正确的做法应该是设定一个临时变量Temp,来记录Dir结果,要注意每次循环仅能执行一次Dir。 |