【问题标题】:How do I export Excel 2016 data into another spreadsheet using VBA?如何使用 VBA 将 Excel 2016 数据导出到另一个电子表格?
【发布时间】:2016-07-24 16:16:21
【问题描述】:

我正在尝试向多个用户发送一个 Excel 电子表格,其中包含一个收集数据的表单。我想将他们的输入数据附加到公共文件的底行。有没有办法让这些用户中的每一个都能够“提交”他们以表格形式收集的输入数据,然后导出到单独的电子表格?

【问题讨论】:

  • 如果您已经有一个 Access 数据库并且最终希望将数据返回到 Access 中,我建议在前端 Access 数据库中构建表单,并链接到您的后端数据库。每个用户都将使用前端进行数据输入。无需购买额外的 MS-Access 许可证 - 他们会安装 Microsoft 提供的免费运行时版本。
  • @dbmitch 刚刚为您节省了数周的开发和维护时间 :-)。
  • 谢谢@dbmitch。我还没有构建 Access 数据库。表单所需的所有计算都在 Excel 工作表的隐藏选项卡中。我正在使用工作簿进行一些建模,现在我们需要在短时间内收集数据。事后看来,在 Excel 中构建数据库会更好。也就是说,有没有办法创建一个宏,将数据附加到另一个 Excel 电子表格的表格底部?
  • 我会在您对问题的最后评论中添加您的最后一行。甚至可能在你的标题中。这两种解决方案的答案截然不同。

标签: vba excel export reporting


【解决方案1】:

您可以使用以下对象将您的收藏电子表格发送给多个用户。

' Outlook variables
Dim oOlAp As Object, oOlns As Outlook.Namespace, oOlInb As Object, oOlInb1 As Object
Dim oOlItm As Object, oOlAtch As Object

' Get Outlook instance
Set oOlAp = GetObject(, "Outlook.application")
Set oOlns = oOlAp.GetNamespace("MAPI")

在该电子表格中,使用相同的对象将答案表发回给您。

然后在您计算机上运行的“上传”电子表格中,使用这些相同的对象从回复电子邮件中提取所有所述表格。

之后你就可以使用普通的excel界面来填充你的access数据库了。

【讨论】:

  • 这个建议有很多缺失的部分。这比您建议的要多得多的代码和协调。
  • 好吧,我已经制作了一张表格,1 在 Outlook 文件夹中查找 xls 文件,提取它们,导入数据工作表,然后将数据集成到数据库表中。写入访问权限可能与写入任何其他正常工作表没有太大不同。就我而言,最困难的部分是弄清楚 Outlook 界面,这样用户就不必处理文件了。
  • 优秀 - 如果您可以分享的不仅仅是上面非常基本的起始代码,那将是一个更有用的答案。由于 OP 甚至没有 Access 数据库,我相信您的解决方案将是一个受欢迎的替代方案
  • 这其中的组成部分太多了,这个问题真的应该分解成组成部分。我无法发布我的文件,因为它充满了机密数据。还有几十页的代码。逻辑类似于在“输入”文件夹中查找邮件(您需要创建一个 Outlook 过滤器将这些文件分开,我想可以读取每封邮件并搜索正确文件名的附件)解压缩文件(在我的例子中,它们在正文中被压缩了密码)
  • 在 excel 中加载文件 查找包含标题描述的行 确定哪一列是哪一信息(在我的情况下可能会改变,有时列会移动,所以我不得不使用 instr(1,mycolumn,constColumnTag )告诉哪一列现在将输入工作表的每一行复制到输出工作表中。(然后我必须消除重复项,或者不复制重复项)他还需要制作另一个excel当你打开它时,它会询问用户获取您需要的每条信息。
猜你喜欢
  • 2011-12-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-26
  • 1970-01-01
  • 2019-02-12
相关资源
最近更新 更多