注册 登录
编程论坛 Excel/VBA论坛

求助:如何将不同Excel中的所需数据提取到同一个Excel中

剁手党 发布于 2023-04-25 17:17, 498 次点击
     如题,想要将目标路径中的示例文件中指定sheet(如“CHannel-8_1”)中G列(current)、H列(Voltage)、V列(Aux_Voltage_1)和W列(Aux_Voltage_2)提取出来,并按照Voltage、Current、Aux_Voltage_1、Aux_Voltage_1的顺序放到新的EXCEL文件中。
     如果目标路径中有多个Excel文件,还需要将所有Excel中的上述数据提取到同一个新Excel的同一个sheet中,并保留原Excel文件的文件名放在首行,以区分不同数据。
     
    求大神帮忙给个代码~
只有本站会员才能查看附件,请 登录
只有本站会员才能查看附件,请 登录
2 回复
#2
厨师王德榜2023-04-25 17:47
有VBA编程基础吗 ,有的话 用fso对象 ,遍历 文件夹中所有文件.
再逐一打开文件 ,遍历所有Sheet
核心代码就一个双循环 完事儿.
并不难.
#3
阳光上的桥2023-04-26 15:13
在我的电脑上测试通过的代码如下,你需要修改文件路径、汇总的表和列:

程序代码:

Option Explicit

Sub x()
    Dim p$, n$, wb As Workbook, st As Worksheet, t
    Dim hz As Worksheet, k
    Workbooks.Add '新建工作簿存放汇总结果
    Set hz = ActiveSheet
    k = 1 '汇总的列
    p = "i:\temp\1\" '需要处理的文件夹,必须以\结尾
    n = Dir(p & "*.xlsx") '搜索文件夹下的文件
    While n <> ""
        Set wb = Workbooks.Open(p & n, False, True)
        For Each st In wb.Sheets(Array("CHannel-8_1")) '需要汇总的工作表清单,请添加
            hz.Cells(1, k) = wb.Name & "-" & st.Name
            k = k + 1
            For Each t In Split("H、G、V、W", "") '需要汇总的列,按汇总后的顺序给出
                st.Range(t & ":" & t).Copy hz.Cells(1, k)
                k = k + 1
            Next t
        Next st
        wb.Close
        n = Dir '查找下一个文件
    Wend
End Sub
1