如何自动将单个工作表中的单元格传输到Excel中的一个主工作表

时间:2014-01-31 05:28:37

标签: excel vba excel-vba

我有一张包含一张主表的工作簿,其中列出了所有合并资产,以及几个子表(列出有形资产,证券等)。为简单起见,假设主表包含两列:名称和值。子表包括不需要转移到主表的附加列(例如,采集日期,基础等)。对于单个子表单上的每个新条目,我想在主表单上插入一个新行,并将相关数据添加到单元格中。

证券工作表:

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?

任何有关解决此问题的最佳方法的建议都会受到高度赞赏。

谢谢。

1 个答案:

答案 0 :(得分:2)

这可以使用获取外部数据来实现(注意,尽管名称,这可以用于在工作簿中自我引用)

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

步骤:

  1. Master工作表中,从数据标签中选择从其他来源获取外部数据
  2. 从Microsoft Query
  3. 中选择
  4. 选择数据源对话框中,选择 Excel文件*
  5. 选择工作簿对话框中,选择您正在使用的文件
  6. Microsoft Query 现在应该打开,显示添加表对话框
  7. 添加证券有形资产
  8. 有形资产,双击名称将其添加到查询中
  9. 从菜单栏中选择 SQL
  10. 将显示的查询编辑为此,然后接受:

    (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$'`)
    
  11. 您将收到警告, SQL查询无法以图形方式显示。选择OK

  12. 从文件菜单中选择将数据返回到Excel
  13. 选择查询的位置
  14. 已经完成了!
  15. 现在,每当更新源数据表时,请刷新主查询以获取最新数据。