Excel 搜索结果文件需要循环浏览

Excel 搜索结果文件需要循环浏览,excel,vba,Excel,Vba,下面编写的代码使用用户提供的名称搜索文件,并将其显示在消息框中。是否可以将其存储在数组中,以便在需要时打开并循环搜索结果文件以读取搜索结果文件的内容 Private Sub cmdsubmit\u Click() 如果Me.PART_NUMBER.Value=”“,则 MsgBox“请输入零件号”,VBE感叹号,“零件搜索” Me.PART_NUMBER.SetFocus 出口接头 如果结束 如果Me.ID_TAG.Value=”“,则 MsgBox“请选择一个ID标记”,VBE感叹号,“零件

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


Private Sub cmdsubmit\u Click()
如果Me.PART_NUMBER.Value=”“,则
MsgBox“请输入零件号”,VBE感叹号,“零件搜索”
Me.PART_NUMBER.SetFocus
出口接头
如果结束
如果Me.ID_TAG.Value=”“,则
MsgBox“请选择一个ID标记”,VBE感叹号,“零件搜索”
Me.ID_TAG.SetFocus
出口接头
如果结束
呼叫传单
端接头
子文件()
暗糜棱岩
Dim fldr作为字符串,fltr作为字符串,sTemp作为字符串,sHldr作为字符串
我想我会坚持多久
作为字符串的Dim msg
Dim FileCount为整数
FileCount=0
fldr=“C:\Users\op\Desktop\New folder”
如果右$(fldr,1)“\”则fldr=fldr&“\”
fltr=(Me.PART\u NUMBER.Value&“*.xls”)
msg=fltr&“找到的文件:”&vbLf
sHldr=Dir(fldr和fltr)
当sHldr“”时执行
sTemp=sTemp&“|”&sHldr
sHldr=Dir
环
如果是sTemp“”,那么
myList=Split(sTemp,“|”)
对于i=1到UBound(myList)
msg=msg&vbLf&myList(一)
接下来我
其他的
msg=msg&vbLf&“无”
如果结束
MsgBox味精
端接头

您似乎丢失了您的
末端接头

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

同样,在单击事件的结束子项之前

添加用户必须输入
thefile.gif
thefiles.*
才能使用
Dir
查找文件。如果他们输入
something
作为零件号,它将查找此名称的(单个)文件夹或此名称的文件(无扩展名)

添加了,以回应进一步的评论。如果用户输入“1”作为零件号,则代码将找到以“1”开头的文件,这是一个字符串。如果要查找以任意数字开头的文件,则必须在循环中编写构造这些文件名的代码:

For x = 1 to 800

如果他们输入“banana1”,而您希望查找所有文件“banana1”、“banana2”,则需要从文本末尾删除“1”,然后再次在循环中查找文件。您可以通过查找“banana1*”和“banana2*”等来减少循环量。

如果您的实际代码中有Andy指出的“End Sub”,请尝试使用F8逐步检查代码。通过这种方式,您可以检查不同变量的值,以查看是否跳过以及如何跳过这些内容。编写的搜索代码应该可以找到文件,就像我之前使用fltr作为文件名进行测试时一样。我想搜索它,但现在我将其更改为fltr=Me.Part_Number.Value,无法找到由提供的文件作为输入的用户…是将用户输入连接到我的搜索代码的错误方式。搜索结果无法从给定的目录路径中找到文件,返回为未找到文件。感谢mason和Andy…我在原始代码末尾使用了End Sub,但在此处错过了它…这次调用有效,但搜索结果无法从给定的目录路径中找到文件,返回为未找到文件搜索代码Write应该像我之前测试时一样找到该文件,使用fltr作为文件名,我想搜索它,但现在我将其更改为fltr=Me.Part_Number.Value,无法找到用户作为输入提供的文件…这是将用户输入连接到我的搜索代码的错误方式吗…我还重新编辑了我的工作的正确图片的代码。谢谢我已经添加到我的答案中,但是你也应该学习如何调试你的代码。按F9将断点添加到行中,然后按F8逐步查看代码。当您逐步查看变量名时,请指向它们的值。谢谢在我使用extension.xls之后它确实起了作用。谢谢您的帮助。
Call fList
For x = 1 to 800