怎样从多个excel的同一位置提取里面的数据

如题所述

这个可以用宏程序实现,以下是当年做项目请教excelhome大神的结果:

    首先将要读取的excel表格放到一个文件夹中,然后将我附件的excel表格放到此文件中打开

    用VBA去遍历这个文件夹中的所有表格,得到文件名和地址放到excel中,


    Sub 汇总_Click()
    Dim xlsFile As String
    Dim iRow As Long, i As Long
    On Error GoTo errHeadler
    iRow = Range("A" & Rows.Count).End(xlUp).Row
    xlsFile = Dir(ActiveWorkbook.Path & "/*.xls")
    Do
        If InStr(1, xlsFile, "汇总") = 0 Then
            i = i + 1
            Range("A" & iRow + i) = xlsFile
            Range("B" & iRow + i) = ActiveWorkbook.Path & "\"
        End If
        xlsFile = Dir
    Loop Until Len(xlsFile) = 0
    extSub:
        Exit Sub
        
    errHeadler:
        MsgBox "抱歉,程序运行时发生意外!请联系作者。", , "提示"
        Resume extSub
        
    End Sub

    这个时候VBA的使命完成

    剩下的就是excel的公式技巧了,“地址&文件名&表名&单元地址”就是你要的结果了,不过我用了 ' 之后做了一步替换操作才显示出值,原因是excel如果不打开的情况下是无法直接更新值的。

    完整的东东看附件吧,不明白的再问


追问

你能做成一个excel发给我吗

追答

excel我已经上传了,在最下面

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-08-14
利用vba代码可以实现。
第2个回答  2015-08-14
多个工作表和多个工作簿的提取方式不同追问

是多个工作表中

追答

把工作表名称全部写在A列
然后在B1写公式
=indirect("'"&A1&"'!B10")
填充公式
这个公式可以引用工作表的B10单元格内容

本回答被网友采纳
第3个回答  2015-08-14
利用vba代码可以实现。
第4个回答  2015-08-14
多个工作表和多个工作簿的提取方式不同追问

是多个工作表中

追答

把工作表名称全部写在A列
然后在B1写公式
=indirect("'"&A1&"'!B10")
填充公式
这个公式可以引用工作表的B10单元格内容

本回答被网友采纳
相似回答