【问题标题】:Excel summary of many excel files data into one report excel多个excel文件数据的Excel汇总成一张报表excel
【发布时间】:2010-10-07 20:43:47
【问题描述】:

我有一些包含填充调查的 excel 文件,现在我想要 拥有一份主文档,其中包含每个文档的摘要结果。

因此我想为每个文件都有一个行输入: 名称 - 地址 - 一些数据...

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

我发现我可以创建不可见的 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 文件中获取值?我真的希望有简单的解决方案。

更烦人的是调查文件中的 VBA 宏,我可以在打开时禁用它们吗 所以没有提示用户?

谢谢!

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    这些至少是 4 个问题,让我们看看我们能做些什么:-)

    首先,无需创建另一个 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 实例会自动解决您的调查文档中的任何 VBA 宏的问题 - 当您以上述方式从正在运行的宏中打开另一个工作簿时,用户不会收到任何安全警告。 (顺便问一下,调查文件必须包含宏吗?)

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

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

    描述了遍历一个文件夹中的一堆Excel文件,例如here

    希望对您有所帮助。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-10-31
        相关资源
        最近更新 更多