Excel宏:如何从另一个Excel文件中提取数据

时间:2012-09-12 06:52:20

标签: vba excel-vba excel

  

可能重复:
  excel macro: browse excel file and use its worksheet data

简而言之,我想写一个脚本可以做到这一点。 在当前的excel文件中,有一个宏按钮。用户可以单击按钮浏览文件(另一个Excel)。在浏览的Excel中,几个工作表将加载到当前的Excel工作簿,并将使用数据。 我这样写的

Sub Button1_Click()     ' choose LOAD path

    objFile = Application.GetOpenFilename(fileFilter:="All Files (* . *) , * . * ")   ' browse function

    ...    ' following

    Call main_function
End Sub

我已经编写了浏览功能。但是如何编写以下部分?例如。 objFile中的某个工作表数据将用于main_function。

1 个答案:

答案 0 :(得分:2)

虽然你想要的并不是很清楚(我不相信我理解你的问题的意图)但我会对此有所了解。

假设您有想要在objFile中打开的文件的名称,您可以像这样从该电子表格中提取数据 - 我只需打开所选的工作簿,然后在其中写下所有工作表的名称在按下按钮之前打开的任何一张纸上的A列。

打开一个新的工作簿会使它被带到前台 - 所以如果我在打开一本新书之前没有抓住活动工作表,然后在打开新工作簿之后设置它,你最终会覆盖数据。你刚开业的工作簿。

Sub Button1_Click()
    ' choose LOAD path
    objFile = Application.GetOpenFilename(fileFilter:="All Files (* . *) , * . * ")   ' browse function

    Set curSheet = ActiveSheet
    Set mWorkbook = Workbooks.Open(objFile)
    curSheet.Activate

    Call someFunction(curSheet, mWorkbook)
End Sub


Sub someFunction(targetSheet, srcWorkbook)
    numSheets = srcWorkbook.Sheets.Count
    For i = 1 To numSheets
        targetSheet.Cells(i, 1) = srcWorkbook.Sheets(i).Name
    Next i
End Sub