Excel行组合?
我有4个可用的“插槽”。 我有4个“对象”,并且需要创build对象的组合,每个对象被放置在一个“槽”中进行旋转。 所以例如,如果我有这些对象:
val1 val2 val3 val4
我想要使用脚本/macros/等,使值的范围的组合,使这个:
val1 val2 val3 val4 val2 val3 val4 val1 val3 val4 val1 val2 val4 val1 val2 val3
接下来,我有6个“对象”,每个对象都需要在每个槽中放置一个位置,所以总是存在一个不包含2个对象的组合,但是在完成所有组合之后,每个对象只访问一个槽。
我不确定使用什么网页search关键字。 我有点卡住了。 什么是最好的方法来做到这一点? 我已经安装了Excel 2013。
谢谢。
编辑。
基于乔的input,我现在有以下代码:
Public Sub makeMore() Dim looper As Integer, colloop As Integer, numcols As Integer numcols = Cells(1, 1).Value For colloop = 1 To numcols For looper = Selection.Row To ((Selection.Row + Selection.Count) - 1) ActiveSheet.Cells(looper, colloop).Value = ActiveSheet.Cells((looper + colloop - 2) Mod numcols + 1, 1).Value Next looper Next colloop End Sub
我把A1的值放在表格上,从C4到C9的值分别为“val1”,“val2”,“val3”,“val4”,“val5”,“val6”,select数值, 6“遍布整个表格。 我试图产生的是多组4个,每个“val”在所有组中均被代表。 我想在循环的值设置中缺less一些东西。
所有进一步的想法赞赏 再次感谢。
这将做到这一点; 我从O15中读取了#行的值。 你可以在程序的顶部设置一个常量,从某个地方读取它,把它放在一个msgbox中,不pipe你想要什么。
Public Sub makeMore() Dim looper As Integer, colloop As Integer, numcols As Integer numcols = Cells(15, 15).Value For colloop = 2 To numcols For looper = 1 To 4 ActiveSheet.Cells(looper, colloop).Value = ActiveSheet.Cells((looper + colloop - 2) Mod numcols + 1, 1).Value Next looper Next colloop End Sub
伪代码解决scheme
Get reference to the data range Copy range data to a variant array Get reference to output range for i = 1 to number of output sets write array to sheet rotate array data offset output range reference next i
去编码这个,如果你卡住了,请回复