将excel数据从一张纸复制到另一张纸上
我一直在谷歌search,但没有运气。 我在我的Excel工作簿中有多个工作表,以及一个工作表作为“汇总”页面。 我希望来自其他工作表的数据在我的摘要页面中更新。 每当有人添加一行或添加新的数据,我希望stream到摘要页面。
换句话说,我有Sheet A
, Sheet B
和Sheet C
我希望他们的所有数据都显示在工作Sheet D
而工作Sheet D
只要工作Sheet A
,工作Sheet B
或工作Sheet C
发生变化就更新。
这可能吗?
我不会干净,但如果你可以在SheetD A1
使用它并拖动它。 =if(SheetA!A1="","",SheetA!A1)
如果你的单元格是空白的,它不会显示任何东西。 如果它包含任何东西,它会显示出来。
不确定这些表是否相互“竞争”,或者它们显示不同的东西。 换句话说,你在SheetA A1
和SheetB A1
中SheetA A1
吗? 如果是这样的话,你希望如何反应?
更新:这个答案是基于一个误解的问题。
有可能的:
=SUM(B1:B8, Sheet1!B3:B8)
其中Sheet1
是同一个Excel文件中的另一个工作表。
这是SUM
最简单的例子。
你可以看看这个教程。
你可以使用这个VBA代码:
Sub copy_all() ' ' copy all sheets to D ' Dim rowCount As Integer Sheets("D").Select Range("A2").Select Range(Selection, Selection.End(xlToRight)).Select Range(Selection, Selection.End(xlDown)).Select Selection.Delete Sheets("A").Select Range("A2").Select Range(Selection, Selection.SpecialCells(xlLastCell)).Select Selection.Copy Sheets("D").Select Range("A2").Select ActiveSheet.Paste Sheets("B").Select Range("A2").Select Range(Selection, Selection.SpecialCells(xlLastCell)).Select Selection.Copy Sheets("D").Select rowCount = Cells(Rows.Count, 1).End(xlUp).Row 'column A has a value of 1 Cells(rowCount + 1, 1).Select ActiveSheet.Paste Sheets("C").Select Range("A2").Select Range(Selection, Selection.SpecialCells(xlLastCell)).Select Selection.Copy Sheets("D").Select rowCount = Cells(Rows.Count, 1).End(xlUp).Row 'column A has a value of 1 Cells(rowCount + 1, 1).Select ActiveSheet.Paste End Sub
每次运行此macros时,它将删除表格D
所有内容(列标题除外),并将表格A
, B
和C
依次复制到表格D
。
它有两个基本的假设,可以很容易地改变:
- 表单的名称是
A
,B
,C
和D
我想这是不正确的,所以只需要replaceSheets("A").Select
所有行,按Sheets("NameOfSheet").Select
。 - 所有工作表中的数据从单元格
A2
开始。 如果不是,只需要replaceRange("A2").Select
所有行Range("A2").Select
正确的最左上angular的数据单元格。
一个假设不能轻易改变 – 所有页面上的数据看起来都是一样的(相同数量的列,以相同的顺序)。
试试这个,告诉我是否帮助你;)