文件管理 · 2024年2月23日

vbaword获取当前文档名字|VBA怎样实现 批量选择word文档读取其文件名并填表 的功能

⑴ excel vba打开文件 并且获得文件名 保存

f = Dir(folder & "*.txt") myfile = Dirf 和 myfile 两个变量混淆了

⑵ 如何利用VBA批量提取文件夹下所有word文档的标题和指定段落

Sub test() Dim fso, fp, arr, wd, f, n%, fname$ Set fso = CreateObject("scripting.filesystemobject") Set fp = fso.getfolder(ThisWorkbook.Path) ReDim arr(1 To fp.Files.Count, 1 To 2) arr(1, 1) = "文件号": arr(1, 2) = "标题" Set wd = CreateObject("word.application") n = 1 For Each f In fp.Files If Right(f, 3) = "doc" Or Right(f, 4) = "docx" Then n = n + 1: arr(n, 1) = fso.getbasename(f) fname = fso.getfilename(f) With wd.Documents.Open(ThisWorkbook.Path & "\" & fname, True, True) wd.Visible = True arr(n, 2) = .Paragraphs(2).Range .Close End With End If Next wd.Quit Sheets(1).[a1].Resize(UBound(arr), UBound(arr, 2)) = arrEnd Sub现在有一个文件夹下有N个Word文件,要将他们的文件名和文档内的第二段提取到Excel表格,如何通过VBA实现

⑶ VBA如何获取当前工作表名称(并非当前活动工作表名称)

已解决Function si() '所在单元格的抄y值袭cellyApplication.Volatilesi = Application.ThisCell.Worksheet.NameEnd Functionname就是工作表名称,index就是序号这个是当前工作表,不是活动工作表.我今天找到不少,全都是活动工作表.我这个给的返回值不会变,活动工作表就是,你正在访问哪个工作表,就返回哪个值,会变,也会出错.

⑷ VBA怎样实现 批量选择word文档读取其文件名并填表 的功能

SubTest()Dimf,n,x,wb,fNameOnErrorResumeNextCells.Clear'打开文件(可多选)f=Application.GetOpenFilename("Word文件,*.docm,",1,"选择文件",MultiSelect:=True)'遍历每个选择的文件Forx=1ToUBound(f)sFile=f(x)'取文件名,并赋值给单元格n=Len(sFile)-InStrRev(sFile,"")fName=Right(sFile,n)Cells(x,1)=Left(fName,InStr(fName,"")-1)'取1到空格前的字符'Cells(x,1)=Left(fname,9)'取文件名的前9个字符Cells(x,2)=Mid(fName,InStr(fName,"")+1,Len(fName)-InStr(fName,".")+1)'取空格后到点之前的字符'Cells(x,2)=Mid(fName,10,Len(fName)-InStr(fName,".")+1)'从10开始取到点之前的字符NextxEndSub