|
本帖最后由 安全网 于 2017-6-2 17:18 编辑
Private Sub UserForm_Initialize()
Dim fp$
fp = "D:\标准数据库\"
Call searfile(fp, ".xls")
[a1].Resize(r, 1) = Application.Transpose(Arr1)
End Sub
Sub searfile(fp As String, fkey As String)
Dim fm, r&
If Right(fp, 1) <> "" Then fp = fp & ""
If Len(fkey) < 1 Then fkey = ".xls"
fm = Dir(fp, vbDirectory)
Do While fm <> ""
If fm <> "." And fm <> ".." Then
If InStr(fm, fkey) Then
r = r + 1
ReDim Preserve Arr1(1 To r)
Arr1(r) = fp & fm
End If
End If
fm = Dir
Loop
End Sub
求助将文件夹内的所有工作薄名称写入Me.ComboBox1.AddItem 的VBA代码修正
原代码里存在2个问题:
1、全局变量r定义过后,在那个子程序里重复定义,造成r的参数传递不对
2、arr1没有定义,需初始定义全局数组 dim arr1()。然后在子程序里redim preserve就不会出错了。
|
|