⑴ 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