VBA怎样实现 批量选择word文档读取其文件名并填表 的功能
希望写一个宏,实现调用Word的“打开”,Dialogs(wdDialogFileOpen).Show,同时选取几个.docm文档,然后把这几个文档的每个文件名的第一部分...
希望写一个宏,实现调用Word的“打开”, Dialogs(wdDialogFileOpen).Show,同时选取几个.docm文档,然后把这几个文档的每个文件名的第一部分十个字符写入第二列单元格中,然后把剩余文件名依次写入第一列单元格的功能
例:选择A00000001 AAAAA.docm, AA00000002 BBBBBB.docm, A00000003 CCC.docm
实现第一列分别为AAAAA,BBBBBB,CCC
第二列分别为 A00000001,A00000002,A00000003
请各位高手帮忙 展开
例:选择A00000001 AAAAA.docm, AA00000002 BBBBBB.docm, A00000003 CCC.docm
实现第一列分别为AAAAA,BBBBBB,CCC
第二列分别为 A00000001,A00000002,A00000003
请各位高手帮忙 展开
1个回答
展开全部
Sub Test()
Dim f, n, x, wb, fName
On Error Resume Next
Cells.Clear
'打开文件(可多选)
f = Application.GetOpenFilename("Word文件,*.docm,", 1, "选择文件", MultiSelect:=True)
'遍历每个选择的文件
For x = 1 To UBound(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开始取到点之前的字符
Next x
End Sub
更多追问追答
追问
f = Application.GetOpenFilename那里编译不通过,说Method or data member not found, 改成f = MyApplication.GetOpenFilename编译能过
Cells(x, 1)那显示Cells未定义,我改成ActiveDocument.myTable.myTable.Cell(x, 1)
但是最后实现不了文件名填表,请问为什么?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询