下面编写的代码使用用户提供的名称搜索文件,并在消息框中显示。它是否可以存储在数组中,以便在需要时可以打开并循环搜索结果文件以读取搜索结果文件的内容
Private Sub cmdsubmit_Click()
If Me.PART_NUMBER.Value = "" Then
MsgBox "Please enter the Part Number.", vbExclamation, "PART SEARCH"
Me.PART_NUMBER.SetFocus
Exit Sub
End If
If Me.ID_TAG.Value = "" Then
MsgBox "Please Select a ID TAG.", vbExclamation, "PART SEARCH"
Me.ID_TAG.SetFocus
Exit Sub
End If
Call flist
End Sub
Sub flist()
Dim myList
Dim fldr As String, fltr As String, sTemp As String, sHldr As String
Dim i As Long
Dim msg As String
Dim FileCount As Integer
FileCount = 0
fldr = "C:\Users\op\Desktop\New folder"
If Right$(fldr, 1) <> "\" Then fldr = fldr & "\"
fltr = (Me.PART_NUMBER.Value & "*.xls")
msg = fltr & " files found:" & vbLf
sHldr = Dir(fldr & fltr)
Do While sHldr <> ""
sTemp = sTemp & "|" & sHldr
sHldr = Dir
Loop
If sTemp <> "" Then
myList = Split(sTemp, "|")
For i = 1 To UBound(myList)
msg = msg & vbLf & myList(i)
Next i
Else
msg = msg & vbLf & "None"
End If
MsgBox msg
End Sub
答案 0 :(得分:0)
您似乎丢失了End Sub
。
您可以将代码复制(但不包括)Sub fList()
及其End Sub
到第一个代码的末尾(就在它的End Sub之前)或使用
Call fList
再次,在Click事件的End Sub之前。
已添加用户必须输入thefile.gif
或thefiles.*
才能使用Dir
查找文件。如果他们输入something
作为PART_NUMBER,则会查找此名称的(单个)文件夹或此名称的文件(不带扩展名)。
已添加以回应进一步的评论。如果用户输入“1”作为PART_NUMBER,那么您的代码将找到以“1”开头的文件,这是一个字符串。你想要找到以任何数字开头的文件,然后你必须在循环中编写构造这些文件名的代码:
For x = 1 to 800
如果他们输入“banana1”并且您想要找到所有文件“banana1”,“banana2”,那么您需要从文本末尾删除“1”,然后再次查找文件中的文件环。您可以通过查找“banana1 *”,“banana2 *”等来减少循环次数。