将来自多个工作表的特定列中的数据转置到另一个“汇总”工作表中的行

我有79张数据都是相同的格式。

我想将 C6:C34中的数据复制到“汇总表”中的一行中。

我已经成功地使用这个Stackoverflow问题中提到的公式,这表明

=TRANSPOSE('worksheet A'!A1:A10) 

 =INDEX(A!$A$1:$A$10, COLUMN()) 

但就我而言,我必须在2013 – 14年度执行79次,而在2014 – 15年度则执行79次,等等。

有没有一种方法可以将Sheet1中的C6:C34中的数据转换为Sheet79,并将其转换为D2行:AF2至D80:AF80? 我很聪明的电脑,但没有太多使用macros的经验(阅读:无)。

任何帮助将不胜感激!

我花了一些时间试图找出一种方法来做到这一点与公式,但仍然是空手而归的方法(当谈到这一点,几乎是一个小菜鸟)。 我有兴趣听到有办法这样做!

我写了如何在VBA中执行此操作(假设您要复制到工作簿的第一个工作表):

 Sub CopyThemAll() Dim ws As Worksheet, sh As Worksheet, wb As Workbook Set wb = ThisWorkbook Set ws = wb.Sheets(1) currentRow = 2 For Each sh In wb.Sheets If sh.Name <> ws.Name Then For x = 6 To 34 ws.Cells(currentRow, x - 2) = sh.Cells(x, 3) Next x currentRow = currentRow + 1 End If Next sh End Sub 

经过几个小时的努力find一个解决方法,我研究了如何做到这一点作为一个公式(这是很愚蠢的)。

我浏览并复制了=TRANSPOSE('worksheet A'!A1:A10)公式,分别沿着79行中的每一行拖动,使得我select的行中的单元格数量与单元格中的单元格数量我正在从表中移出原始列,将相关公式复制到公式框中,然后按ctrl + shift+ enter

在完成了2014/15年度的总结报告之后,我将其复制过来,以便2015/16年度总结的标题相同。 在这样做的时候,我意识到数据已经被更新了,所以我把C6:C34replace为D6:D34(在这个例子中是2015/16每列的数据) 79张电子表格),并且不需要我做任何事情就可以更新!

虽然我仍然需要花费一些时间将数据转移到第一张汇总表,但对于像我这样的macros不太熟练的人来说,这可能是一个很好的select。

如果你知道如何使用macros,上面有一个很好的替代答案。