我有4个可用的“插槽”。我有4个“对象”,需要创建对象的组合,每个对象都放在旋转的“槽”中。例如,如果我有这些对象:
val1
val2
val3
val4
我想使用script / macro / etc来组合值范围,以实现:
val1
val2
val3
val4
val2
val3
val4
val1
val3
val4
val1
val2
val4
val1
val2
val3
接下来,我有6个“对象”,每个都需要在每个插槽中放置一个位置,因此总会有一个组合,其中不包含2个对象,但在完成所有组合后,每个对象访问一个插槽一次
我不确定要使用哪些网络搜索关键字。我有点卡住了。最好的方法是什么?我安装了Excel 2013。
感谢。
EDIT。
根据Joe的输入,我现在有以下代码:
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中的值“6”放在工作表上,将值从C4添加到C9“val1”“val2”“val3”“val4”“val5”“val6”,选择值,我看到的是数字“6”遍布在工作表上。我想要产生的是多组4,每个“val”在所有组中均等地表示。我想,我在循环中的值设置中遗漏了一些东西。
所有进一步的想法表示赞赏。再次感谢。
答案 0 :(得分:1)
这样做;我从O15读取了行数#的值。您可以将它设置在程序顶部的常量中,从某处读取,将其放入msgbox中,无论您想要什么。
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
答案 1 :(得分:0)
伪代码解决方案
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
开始编码,如果你遇到困难就回复