VBA excelmacros处理5000行和5列

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

例:

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 

你真的不需要VBA这个。 只需input公式

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

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

这应该将每个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 
Interesting Posts