将来自特定列的数据从多个工作表转置到另一个'摘要中的行。片

时间:2014-08-05 04:17:52

标签: excel vba excel-vba excel-formula transpose

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

我想将数据从 C6:C34复制到“摘要表”中的

我成功使用了此Stackoverflow question here中提到的公式,建议

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

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

但据我所知,我必须在2013-14赛季执行79次,然后在2014-15赛季再执行79次,依此类推。

有没有办法可以从Sheet1到Sheet79的C6:C34中获取数据并将其转换为D2行:AF2到D80:AF80?我很熟悉计算机,但是没有太多使用宏的经验(阅读:无)。

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:1)

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

我写了你如何在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

答案 1 :(得分:1)

经过几个小时的尝试找到解决方法之后,我研究了如何将其作为一个公式(并且它非常简单)。

我通过拖动整个行,将=TRANSPOSE('worksheet A'!A1:A10)公式分别复制到79行中的每一行,以便我选择的行中的单元格数与原始列中的单元格数相匹配我正在转换表格,将相关公式复制到公式框中,然后按下 ctrl + shift+ enter

在我完成2014/15的整个摘要电子表格后,我将其复制了以便我对2015/16摘要有相同的标题。在这样做的时候,我意识到当我复制它时数据已经更新,所以我做了一个&#34;替换所有&#34; C6:C34到D6:D34(在这种情况下是79个电子表格中每一个的2015/16专栏中的数据)并更新,我不需要做任何其他事情!

虽然我仍然需要花一些时间将数据转换到第一个摘要表,但对于那些像我一样对宏没有经验的人来说,这可能是一个不错的选择。

如果您确实知道如何使用宏,那么上面有一个很好的替代答案。