关于vba的问题:请问在vba里需要依次打开文件夹下面的文件名包含“资产信息”的excel表格文件,

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于vba的问题:请问在vba里需要依次打开文件夹下面的文件名包含“资产信息”的excel表格文件,相关的知识,希望对你有一定的参考价值。

关于vba的问题:请问在vba里需要依次打开文件夹下面的文件名包含“资产信息”的excel表格文件,然后执行一个宏命令,保存并关闭,代码该怎么写啊?求大神指导

参考技术A Sub 批量打开文件()
Dim fd As FileDialog, Item As Integer
Dim BCDE As Workbook
'弹出一个浏览文件的窗口,可以多选目标文件
Set fd = Application.FileDialog(msoFileDialogFilePicker)
'如果选择了文件
If fd.Show = -1 Then
'遍历所有文件
For Item = 1 To fd.SelectedItems.Count '逐个打开文件
If InStr(BCDE.Name, "资产信息") Then
Workbooks.Open (fd.SelectedItems(Item))
endif
Next Item
End If
End Sub
Sub 关闭工作窗口()
On Error Resume Next '忽略错误并重新执行下一行代码
Dim BCDE As Workbook ‘逐个工作薄循环,
For Each BCDE In Workbooks

BCDE.Activate
If InStr(BCDE.Name, "XX“) = 0 Then’XX表示不关闭的文件,如果不需要就去掉这个语句
Workbooks(BCDE.Name).Close True

End If
Next BCDE追问

If InStr(BCDE.Name, "资产信息") Then
提示说这里少了一个with,这个我不会,还要麻烦你一下,还有要运行宏的话是怎么调用呢?用快捷键还是用宏名?

追答

Sub 打开()
dim mypath as string
dim myname as string
mypath=ThisWorkbook.Path & "\路径名\"
myname=dir(mypath,vbdirectory)
Do While myname ""
If InStr(myname, "包含的文件名") 0 Then
Workbooks.Open Filename:=mypath & myname
End If
myname = Dir
Loop
End Sub$ post_type

用宏名

参考技术B 文件的路径只需要指示到文件夹的路径,然后循环文件夹内的所有文件,判断文件的文件名是否包含“资产信息”,如果包含则执行你所谓的宏命令,不包含的话就循环下一个文件本回答被提问者采纳 参考技术C fName = Dir("C:\XXX\*.XLS")
Do While fName <> ""
Workbooks.Open Filename:=fName
‘调用你的宏
ActiveWorkbook.Close SaveChanges:=True

fName = Dir

Loop

EXCEL VBA中可调用VB的DLL文件中的程序,请问VB程序运行时需要一些有关VB的链接库文件,

当EXCEL VBA调用DLL文件中程序时,如电脑中无VB的链接库文件,程序能正常运行吗。请指导,谢谢

若本电脑中无,则不能。 参考技术A 如果dll文件是从VB建的,那必须确认DLL中是否引用了VB特有的东西,如果是,则可能无法运行。

以上是关于关于vba的问题:请问在vba里需要依次打开文件夹下面的文件名包含“资产信息”的excel表格文件,的主要内容,如果未能解决你的问题,请参考以下文章

VBA学习笔记之DIR函数

EXCEL VBA中可调用VB的DLL文件中的程序,请问VB程序运行时需要一些有关VB的链接库文件,

请问用vba在excel表里指定内容转成文本一键自动发到指定的微信群上?求帮忙!

excel中想实现使用Python代替VBA,请问应该怎么做

excel2013关于VBA密码破解的教程

求VBA编程高手。。用vba loop循环打开一个文件夹里的word文档,文档页数不能全部加载,是啥问题?