Excel VBA:从多个Excel文件中提取数据

Excel VBA:从多个Excel文件中提取数据,excel,vba,Excel,Vba,我在excel表格中有一个数字列表。这些是返回号码,所有这些都在我的桌面上有一个关联的文件。例如,625号在我的桌面上有一个excel文件RGA#625。有像这样的800个数字;如何从各自的excel文件中为每个数字提取一个详细信息 期望输出 635372883 625273232 743323724 第二列应从单独的excel文件中提取。该数字在这些文件中的位置将是F10或F11。我使用了以下函数 私有函数GetValue(路径、文件、工作表、参考) '从关闭的工作簿中检索值 作为字符串的Di

我在excel表格中有一个数字列表。这些是返回号码,所有这些都在我的桌面上有一个关联的文件。例如,625号在我的桌面上有一个excel文件RGA#625。有像这样的800个数字;如何从各自的excel文件中为每个数字提取一个详细信息

期望输出 635372883 625273232 743323724


第二列应从单独的excel文件中提取。该数字在这些文件中的位置将是F10或F11。

我使用了以下函数

私有函数GetValue(路径、文件、工作表、参考)
'从关闭的工作簿中检索值
作为字符串的Dim arg
'确保该文件存在
如果正确(路径,1)“\”则路径=路径&“\”
如果Dir(路径和文件)=“”,则
GetValue=“未找到文件”
退出功能
如果结束
'创建参数
arg=“”&path&“[”&file&“]”&sheet&“!”&_
范围(参考)。范围(“A1”)。地址(,xlR1C1)
'执行XLM宏
GetValue=ExecuteExcel4Macro(arg)
端函数
然后我做了以下假设I)返回号在A列ii)文件命名约定始终是RGA#625.XLSX iii)数据始终在F10的表1上

Sub GetData_for_ReturnNumbers()

Const DATA_DIR = "<put your directory here>"
Const COL_RETNR = 1
Const FILE_START = "RGA # "
Const FILE_EXT = ".XLSX"
Const SHEET1 = "Sheet1"
Dim sngCell As Range
Dim filename As String
Dim rg As Range
    Set rg = Range("A2:A4")

    For Each sngCell In rg
        filename = FILE_START & sngCell.Value & FILE_EXT
        sngCell.Offset(, 1) = GetValue(DATA_DIR, filename, SHEET1, "F10")
    Next

End Sub
返回编号()的子GetData Const DATA_DIR=“” 常数COL_RETNR=1 Const FILE_START=“RGA#” 常量文件_EXT=“.XLSX” Const SHEET1=“SHEET1” 暗sngCell As范围 将文件名设置为字符串 变暗rg As范围 设置rg=范围(“A2:A4”) 对于rg中的每个sngCell filename=FILE\u START&sngCell.Value&FILE\u EXT sngCell.Offset(,1)=GetValue(数据目录,文件名,表1,“F10”) 下一个 端接头

如果找不到该文件,我希望它与列表的其余部分一起继续。数字列表是否在更改?文件是否始终位于您的桌面上?文件的命名约定是否始终为RGA#?我们一直在谈论的是excel文件吗?我假设是因为你说数据位于F10或F11。我怎么知道是F10还是F11?因此,根据我的问题数量,我认为你应该在你的帖子中添加云纹信息,也许展示你迄今为止的尝试也是一个好主意。
Sub GetData_for_ReturnNumbers()

Const DATA_DIR = "<put your directory here>"
Const COL_RETNR = 1
Const FILE_START = "RGA # "
Const FILE_EXT = ".XLSX"
Const SHEET1 = "Sheet1"
Dim sngCell As Range
Dim filename As String
Dim rg As Range
    Set rg = Range("A2:A4")

    For Each sngCell In rg
        filename = FILE_START & sngCell.Value & FILE_EXT
        sngCell.Offset(, 1) = GetValue(DATA_DIR, filename, SHEET1, "F10")
    Next

End Sub