Vba 如何在Excel中将单元格从多张工作表自动转移到一张主工作表

Vba 如何在Excel中将单元格从多张工作表自动转移到一张主工作表,vba,excel,Vba,Excel,我有一个工作簿,其中有一个主表,列出了所有组合资产,还有几个子表(列出了有形资产、证券等)。为了简单起见,假设主工作表包含两列:Name和Value。子表包括不需要转移到主表的其他列(例如,获取日期、依据等)。对于单个子工作表上的每个新条目,我希望在主工作表上插入新行,并将相关数据添加到单元格中 证券工作表: Name Value Acquisition Date Basis AAPL $450 1/8/2010 $211 GE

我有一个工作簿,其中有一个主表,列出了所有组合资产,还有几个子表(列出了有形资产、证券等)。为了简单起见,假设主工作表包含两列:Name和Value。子表包括不需要转移到主表的其他列(例如,获取日期、依据等)。对于单个子工作表上的每个新条目,我希望在主工作表上插入新行,并将相关数据添加到单元格中

证券工作表:

Name      Value    Acquisition Date    Basis
AAPL      $450     1/8/2010            $211
GE        $2,500   11/1/2011           $1,500
有形资产工作表

Name      Value    Insured
Jewelry   $6,000   Yes
China     $1,200   No 
主工作表-合并资产列表:

Name      Value
AAPL      $450
GE        $2,500
Jewelry   $6,000
China     $1,200
这可以通过Excel公式实现,还是需要VBA

如果您有任何关于最佳方法的建议,我们将不胜感激


谢谢。

这可以通过使用“获取外部数据”来实现(注意,尽管名称不同,但这可以用于工作簿中的自我引用)

此答案基于Excel 2010。如果您使用的是不同的版本,仍然可以,但访问这些功能的菜单可能不同

步骤:

  • Master
    工作表的“数据”选项卡中,选择“获取外部数据/来自其他来源”
  • 从Microsoft查询中选择
  • 从“选择数据源”对话框中,选择Excel文件*
  • 从“选择工作簿”对话框中,选择正在使用的文件
  • Microsoft Query现在应处于打开状态,显示“添加表”对话框
  • 添加证券和有形资产表
  • 在有形资产中,双击名称和值以将其添加到查询中
  • 从菜单栏中选择SQL
  • 将显示的查询编辑为此,并接受:

    (SELECT `'Tangible Assets$'`.Name, `'Tangible Assets$'`.Value
    FROM `Securities$` `Securities$`, `'Tangible Assets$'` `'Tangible Assets$'`)
    UNION
    (SELECT `Securities$`.Name, `Securities$`.Value
    FROM `Securities$` `Securities$`, `'Tangible Assets$'` `'Tangible Assets$'`)
    
  • 您将收到一条警告,SQL查询无法以图形方式显示。选择
    OK

  • 从“文件”菜单中选择“将数据返回Excel”
  • 选择放置查询的位置
  • 完成了
    现在,每当更新源数据表时,请刷新主查询以获取最新数据。

    我还没有测试过它,但它看起来很优雅!我会记住的。我不知道您可以使用获取外部数据进行自我引用。这看起来是一个很好的简单解决方案。不幸的是,它在Mac上似乎不起作用,因为Excel需要使用第三方ODBC管理器。