vba在打开的很多excel中,查找一个名字中含特定字的excel,求大神指教
有很多打开的excel,其中有一个或几个名字为数字+年+数学+月OF的excel,(如16年1月OF),如何找到这个excel,并返回地址,文件名,希望最好是用正则表达式...
有很多打开的excel,其中有一个或几个名字为数字+年+数学+月OF的excel,(如16年1月OF),如何找到这个excel,并返回地址,文件名,希望最好是用正则表达式。
展开
3个回答
展开全部
代码如下:
注意:单元格中的日期如2016年1月1日,如果是默认日期格式,无法选出,只能是文本格式才行。
Sub main()
Set reg = CreateObject("vbscript.regexp")
reg.Pattern = "\d+年\d+月\d+日"
reg.Global = True
f = Dir(ThisWorkbook.Path & "\*.xlsx")
Do While f <> ""
Workbooks.Open (ThisWorkbook.Path & "\" & f)
For Each Rng In ActiveWorkbook.Sheets(1).Range("A1:Z100") '根据情况修改工作表和搜索区域
Set mh = reg.Execute(Rng.Value)
If mh.Count > 0 Then
MsgBox mh(0) & " 行号为:" & Rng.Row & " 列号为:" & Rng.Column
MsgBox ActiveWorkbook.Name
End If
Next
Set mh = Nothing
ActiveWorkbook.Close
f = Dir
Loop
End Sub
注意:单元格中的日期如2016年1月1日,如果是默认日期格式,无法选出,只能是文本格式才行。
Sub main()
Set reg = CreateObject("vbscript.regexp")
reg.Pattern = "\d+年\d+月\d+日"
reg.Global = True
f = Dir(ThisWorkbook.Path & "\*.xlsx")
Do While f <> ""
Workbooks.Open (ThisWorkbook.Path & "\" & f)
For Each Rng In ActiveWorkbook.Sheets(1).Range("A1:Z100") '根据情况修改工作表和搜索区域
Set mh = reg.Execute(Rng.Value)
If mh.Count > 0 Then
MsgBox mh(0) & " 行号为:" & Rng.Row & " 列号为:" & Rng.Column
MsgBox ActiveWorkbook.Name
End If
Next
Set mh = Nothing
ActiveWorkbook.Close
f = Dir
Loop
End Sub
更多追问追答
追问
非常感谢您的回答,对不起,我的描述有问题,我要查找的是打开的excel,他的文件名是数字+年+数字+月OF,如16年1月OF.xls,不好意思,让您白麻烦一次
追答
那很简单:
Sub m()
Set reg = CreateObject("vbscript.regexp")
reg.Pattern = "\d+年\d+月OF"
reg.Global = True
f = Dir(ThisWorkbook.Path & "\*.xls")'自己修改路径
Do While f ""
Set mh = reg.Execute(Left(f, Len(f) - 4))
If mh.Count > 0 Then
MsgBox mh(0)
End If
Set mh = Nothing
f = Dir
Loop
End Sub
2016-01-25 · 知道合伙人软件行家
关注
展开全部
i=2
f = Dir(ThisWorkbook.Path & "\" & "*.xls")
Do While f > " "
if instr(f,"*年*月OF")>0 then
Cells(i,1)=f
i=i+1
end if
f = Dir
Loop
f = Dir(ThisWorkbook.Path & "\" & "*.xls")
Do While f > " "
if instr(f,"*年*月OF")>0 then
Cells(i,1)=f
i=i+1
end if
f = Dir
Loop
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
需要你的样本文件
更多追问追答
追问
没样本文件,刚开始写,不会了
追答
至少需要知道你要查找的这个数据的数据格式
是文本呢
还是日期
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询