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
请各位高手帮忙
展开
 我来答
鲜美还清湛灬白桦N
2015-03-09 · TA获得超过620个赞
知道小有建树答主
回答量:404
采纳率:50%
帮助的人:526万
展开全部
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)
但是最后实现不了文件名填表,请问为什么?
追答

我知道了,你的是word,不是excel?以下是Word的代码,我日才几个字就提示超出长度了,郁闷

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式