Excel汇总了许多excel文件数据到一个报表excel

我有一些excel文件包含填充survery,现在我想有一个主文件,将有每个的摘要结果。

因此,我成像要为每个文件一行input:名称 – 地址 – 一些数据…

我想打开每个文件,并将选定单元格的数据复制到我的主文件中。

我发现我可以创build不可见的Excel实例,因此不会显示给用户。

我怎样才能复制/粘贴从A1假设的数据到我的工作表?

Sub Combine() Fpath = "c:\test\" Fname = Dir(Fpath & "*.xls") Dim xl As Excel.Application Set xl = CreateObject("Excel.Application") xl.Visible = false Dim w As Workbook Dim remoteBook As Workbook Set remoteBook = xl.Workbooks.Open(Fpath & Fname) xl.Quit End Sub 

我是VBA新手,访问方式似乎相当复杂,有没有更容易的方法来从这些Excel文件中获取值? 我真的希望有一个简单的解决scheme。

更烦人的是调查文件中的VBAmacros可以禁用那些打开,所以用户不会提示?

谢谢!

那些至less有四个问题在一个,让我们看看我们能做些什么:-)

首先,不需要创build另一个Excel实例,只需将你的代码添加到一个空的工作簿(或者如果你没有问题的话,可以把它放到你的主文档中)

  Public Function OpenWorkbook(mypath As String) As Workbook Workbooks.Open Filename:=mypath Set OpenWorkbook = ActiveWorkbook End Function 

用法:

  Dim wb as workbook, ws as worksheet set wb = OpenWorkbook("your path") set ws = wb.Sheets(1) 

避免第二个Excel实例自动解决了您的调查文档中的任何VBAmacros的问题 – 当您像上面一样从运行的macros中打开另一个工作簿时,用户将不会收到任何安全警告。 (顺便问一下,调查文件必须包含任何macros?)

将该表格中的数据复制到工作簿中,如下所示:

  ThisWorkbook.Sheets("Name of your sheet").Range("A1") = ws.Range("A1") 

例如, 在这里描述了遍历文件夹中的一堆Excel文件

希望有所帮助。

你在正确的轨道上。 这并不困难,我不认为有一个更简单的方法从其他工作簿获取数据。 编写一个函数,您可以轻松地重用代码。

如果仅需要macros来编译测量数据,则可以从填充的xls文件中删除macros。 否则,您将需要修改每台计算机上的安全权限或对项目进行数字签名。