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。 否则,您将需要修改每台计算机上的安全权限或对项目进行数字签名。