搜索结果文件需要循环播放

时间:2013-07-21 16:20:45

标签: excel vba

下面编写的代码使用用户提供的名称搜索文件,并在消息框中显示。它是否可以存储在数组中,以便在需要时可以打开并循环搜索结果文件以读取搜索结果文件的内容


 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

1 个答案:

答案 0 :(得分:0)

您似乎丢失了End Sub

您可以将代码复制(但不包括)Sub fList()及其End Sub到第一个代码的末尾(就在它的End Sub之前)或使用

Call fList

再次,在Click事件的End Sub之前。

已添加用户必须输入thefile.gifthefiles.*才能使用Dir查找文件。如果他们输入something作为PART_NUMBER,则会查找此名称的(单个)文件夹或此名称的文件(不带扩展名)。

已添加以回应进一步的评论。如果用户输入“1”作为PART_NUMBER,那么您的代码将找到以“1”开头的文件,这是一个字符串。你想要找到以任何数字开头的文件,然后你必须在循环中编写构造这些文件名的代码:

For x = 1 to 800

如果他们输入“banana1”并且您想要找到所有文件“banana1”,“banana2”,那么您需要从文本末尾删除“1”,然后再次查找文件中的文件环。您可以通过查找“banana1 *”,“banana2 *”等来减少循环次数。