有多种方法可以从 Excel 表中提取另一个文件夹中每个文件名对应的值,以下是其中的两种常用方法:

  1. 使用 Excel VBA:
  • 在 Excel 中打开 Visual Basic 编辑器(按下 Alt + F11)。
  • 在左窗格中选中您的工作簿,在菜单栏中选择“插入”->“模块”。
  • 在代码窗口中输入以下代码:
Sub GetFileValues()
    Dim myFolder As String
    Dim myFile As String
    Dim fileName As String
    Dim wb As Workbook
    Dim ws As Worksheet
    Dim row As Integer
    
    '设置文件夹路径
    myFolder = 'C:\MyFolder\' '替换为您的文件夹路径
    
    '打开 Excel 文件
    Set wb = Workbooks.Open('C:\MyWorkbook.xlsx') '替换为您的 Excel 文件路径
    
    '选择工作表
    Set ws = wb.Worksheets('Sheet1') '替换为您的工作表名称
    
    '开始循环文件夹中的文件
    myFile = Dir(myFolder & "\*.xlsx") '替换为您需要的文件类型
    row = 2 '从第二行开始输入值,第一行为标题
    
    Do While Len(myFile) > 0
        fileName = Mid(myFile, 1, InStrRev(myFile, ".") - 1) '提取文件名,去除扩展名
        '在工作表中查找文件名
        Set cell = ws.Columns(1).Find(What:=fileName, LookIn:=xlValues, LookAt:=xlWhole)
        If Not cell Is Nothing Then
            '如果找到对应的文件名,输入对应的值
            Set wb2 = Workbooks.Open(myFolder & "\" & myFile)
            ws.Cells(row, 2) = wb2.Sheets('Sheet1').Range('A1').Value '替换为您需要的值
            wb2.Close SaveChanges:=False
        End If
        row = row + 1 '下一行
        myFile = Dir '下一个文件
    Loop
    
    wb.Close SaveChanges:=True '保存并关闭 Excel 文件
End Sub
  • 替换代码中的文件夹路径、Excel 文件路径、工作表名称和需要的值。
  • 运行代码(按下 F5 或在菜单栏中选择“运行”->“运行子过程”)。
  1. 使用 Excel 的 VLOOKUP 函数:
  • 在 Excel 中打开您的工作簿。
  • 在工作表中输入文件名和需要的值。
  • 打开 Windows 资源管理器,选择您的文件夹,按下 Ctrl + A,将所有文件复制到剪贴板。
  • 在 Excel 工作表中选择一个空单元格,按下 Ctrl + V,将所有文件名粘贴到此单元格中。
  • 在需要的值所在的单元格中输入以下公式:
=VLOOKUP(A2,'[文件名.xlsx]Sheet1'!$A$1:$B$100,2,FALSE)

其中,A2 是文件名所在的单元格,[文件名.xlsx] 是您要提取值的 Excel 文件的名称,Sheet1 是工作表名称,$A$1:$B$100 是文件名和需要的值所在的单元格范围,2 是需要的值所在列的列号,FALSE 是精确匹配。

  • 拖动公式以填充需要的值。
  • 保存并关闭 Excel 文件。
从 Excel 表中提取文件夹内文件名对应的值

原文地址: https://www.cveoy.top/t/topic/nE2n 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录