⑴ excel vba打开文件 并且获得文件名 保存
f = Dir(folder & "*.txt")
myfile = Dir
f 和 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)) = arr
End Sub
现在有一个文件夹下有N个Word文件,要将他们的文件名和文档内的第二段提取到Excel表格,如何通过VBA实现
⑶ VBA如何获取当前工作表名称(并非当前活动工作表名称)
已解决
Function si() '所在单元格的抄y值袭celly
Application.Volatile
si = Application.ThisCell.Worksheet.Name
End Function
name就是工作表名称,index就是序号
这个是当前工作表,不是活动工作表.我今天找到不少,全都是活动工作表.我这个给的返回值不会变,活动工作表就是,你正在访问哪个工作表,就返回哪个值,会变,也会出错.
⑷ VBA怎样实现 批量选择word文档读取其文件名并填表 的功能
SubTest()
Dimf,n,x,wb,fName
OnErrorResumeNext
Cells.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开始取到点之前的字符
Nextx
EndSub