vba在打开的很多excel中,查找一个名字中含特定字的excel,求大神指教

有很多打开的excel,其中有一个或几个名字为数字+年+数学+月OF的excel,(如16年1月OF),如何找到这个excel,并返回地址,文件名,希望最好是用正则表达式... 有很多打开的excel,其中有一个或几个名字为数字+年+数学+月OF的excel,(如16年1月OF),如何找到这个excel,并返回地址,文件名,希望最好是用正则表达式。 展开
 我来答
鱼木混猪哟
高粉答主

2016-01-25 · 专注Office,尤其Excel和VBA
鱼木混猪哟
采纳数:6078 获赞数:33697

向TA提问 私信TA
展开全部
代码如下:
注意:单元格中的日期如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
skyzxh

2016-01-25 · 知道合伙人软件行家
skyzxh
知道合伙人软件行家
采纳数:2623 获赞数:8344
毕业于中科院,硕士,30年工程从业经验。现任公司技术负责。

向TA提问 私信TA
展开全部
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
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e1af404
2016-01-25 · TA获得超过1.3万个赞
知道大有可为答主
回答量:1.1万
采纳率:59%
帮助的人:4092万
展开全部
需要你的样本文件
更多追问追答
追问
没样本文件,刚开始写,不会了
追答
至少需要知道你要查找的这个数据的数据格式
是文本呢
还是日期
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式