【问题标题】:VBA excel macro to process 5000 rows and 5 columnsVBA excel宏处理5000行5列
【发布时间】:2014-12-30 13:56:57
【问题描述】:

我正在使用 Excel 2007,并且在范围 A1:A5000 中有 5000 条语句,并且在范围 B1:E5000 中的每个语句有四个备选方案。我想将它转换为另一个 slyle,其中所有数据都在 G1:25000 范围内,所有四个选项都将在每个语句下。我录制了一个宏,但我不知道如何循环它,手动操作是不可能的。在这里需要一些帮助...谢谢。

例子:

Statement1 - AlternativeA 1 -  AlternativeA 2 -  AlternativeA 3 -  AlternativeA 4
Statement2 - AlternativeB 1 -  AlternativeB 2 -  AlternativeB 3 -  AlternativeB 4
Statement3 - AlternativeC 1 -  AlternativeC 2 -  AlternativeC 3 -  AlternativeC 4
Statement4 - AlternativeD 1 -  AlternativeD 2 -  AlternativeD 3 -  AlternativeD 4

输出:

Statement1 
AlternativeA 1
AlternativeA 2
AlternativeA 3
AlternativeA 4
Statement2
AlternativeB 1
AlternativeB 2
AlternativeB 3
AlternativeB 4
Statement3
AlternativeC 1
AlternativeC 2
AlternativeC 3
AlternativeC 4
Statement4
AlternativeD 1
AlternativeD 2
AlternativeD 3
AlternativeD 4

【问题讨论】:

    标签: excel excel-2007 transpose flatten vba


    【解决方案1】:

    这应该将每个 A:E 中的值转移并转置到 G 列。

    Sub AE_2G()
        Dim r As Long, s As Variant
        For r = 1 To Cells(Rows.Count, 1).End(xlUp).Row
            s = Cells(r, 1).Resize(1, 5)
            Cells((r - 1) * 5 + 1, 7).Resize(5, 1) = Application.Transpose(s)
        Next r
    End Sub
    

    【讨论】:

      【解决方案2】:

      您实际上并不需要 VBA。只需输入公式

      G1: =INDEX($A:$E,INT((ROWS($1:1)-1)/5)+1,MOD(ROWS($1:1)-1,5)+1)

      然后填写到 G25000。然后复制并粘贴特殊值

      【讨论】:

      • 太棒了....谢谢。从来没想过这可以使用工作表功能完成。干杯!
      猜你喜欢
      • 1970-01-01
      • 2012-04-12
      • 1970-01-01
      • 1970-01-01
      • 2011-01-14
      • 1970-01-01
      • 1970-01-01
      • 2016-01-26
      • 2010-11-10
      相关资源
      最近更新 更多