Vba Excel宏:如何从其他Excel文件中提取数据
可能重复:Vba Excel宏:如何从其他Excel文件中提取数据,vba,excel,Vba,Excel,可能重复: 简言之,我想写一个脚本可以做到这一点。 在当前excel文件中,有一个宏按钮。用户可以单击按钮浏览文件(另一个Excel)。在浏览的Excel中,几个工作表将加载到当前的Excel工作簿中,并使用数据。 我是这样写的 Sub Button1_Click() ' choose LOAD path objFile = Application.GetOpenFilename(fileFilter:="All Files (* . *) , * . * ") ' br
简言之,我想写一个脚本可以做到这一点。 在当前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中的特定工作表数据将用于主函数。虽然您想要的不是很清楚(我不确定我是否理解您问题的意图),但我会尝试一下 假设您有要在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
thx!~我尝试了另一种方法。将整个工作表复制到当前工作簿。但缺点是使用后,用户需要点击“删除”来删除那些复制的工作表。实际上,我想要的只是读取数据,而不是复制和粘贴。这意味着导入并使用其他工作簿的数据而不进行跟踪。我不确定是否能做到这一点。你能详细说明你想做什么吗?您可以从传递给的任何函数中使用mWorkbook。使用该变量,可以读取excel文件中的任何数据。你不需要把数据从一个地方复制到另一个地方,除非你真的想把它复制到另一个地方。所以,正如我所说——如果你能进一步阐述你的意图,我将能够为你提供一个更好的答案。