Vba 将列复制到多行

Vba 将列复制到多行,vba,excel,Vba,Excel,我想要一个宏来转换以下内容 NAME COLOR1 COLOR2 COLOR3 COLOR4 jane blue pink red teal john red black green gold 到 我尝试过使用内置的转置工具,但似乎不起作用。似乎我需要一个自定义脚本…行中有数据2和3,选择一个单元格并输入: =INDEX($A$2:$A$9999,ROUNDUP(ROWS($1:1)/4,0)) 在其旁边输入: =OFFSET($B$2,ROUNDU

我想要一个宏来转换以下内容

NAME COLOR1 COLOR2 COLOR3 COLOR4
jane   blue   pink    red   teal
john    red  black  green   gold     


我尝试过使用内置的转置工具,但似乎不起作用。似乎我需要一个自定义脚本…

行中有数据23,选择一个单元格并输入:

=INDEX($A$2:$A$9999,ROUNDUP(ROWS($1:1)/4,0))
在其旁边输入:

=OFFSET($B$2,ROUNDUP(ROWS($1:1)/4,0)-1,MOD(ROWS($1:1)-1,4))
把这些都抄下来:


如果您真的喜欢宏,请让宏保存并复制公式。

您在宏方面做了哪些尝试?有一千种方法可以剥这只猫的皮,这是一个帮助你的好地方。这也可以通过INDEX()和一些数学来完成。我个人将如何进行这项工作,将for循环嵌套在for循环中。一个循环使用名称,一个嵌套的循环使用颜色。对于灵活的VBA解决方案,我对这个问题有一个古老的答案:这是一个公式版本:
=OFFSET($B$2,ROUNDUP(ROWS($1:1)/4,0)-1,MOD(ROWS($1:1)-1,4))