可能重复:
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。
答案 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