【问题标题】:Excel Row Combinations?Excel行组合?
【发布时间】:2013-02-21 03:51:37
【问题描述】:

我有 4 个可用的“插槽”。我有 4 个“对象”,需要创建对象组合,每个对象都被放置在旋转的“插槽”中。例如,如果我有这些对象:

val1
val2
val3
val4

我想使用脚本/宏/等来组合值的范围,来做到这一点:

val1
val2
val3
val4

val2
val3
val4
val1

val3
val4
val1
val2

val4
val1
val2
val3

接下来,我有 6 个“对象”,每个对象都需要在每个插槽中放置一个位置,所以总会有不包括 2 个对象的组合,但是在所有组合完成后,每个对象访问一个插槽一次.

我不确定要使用哪些网络搜索关键字。我有点卡住了。最好的方法是什么?我已经安装了 Excel 2013。

谢谢。

编辑。

根据 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”在所有组中均等表示。我想,我在循环中的值设置中遗漏了一些东西。

感谢所有进一步的想法。再次感谢。

【问题讨论】:

  • 你想取四个连续的单元格,并按相同的顺序制作 4 组,但每个单元格在一组中的第一个? IE 1-2-3-4 在 A1-A4,然后在 B1-B4 你有 2-3-4-1,然后在 C1-4 你有 3-4-1-2,等等?这最终会是一项更大的任务吗?如果是,会有哪些参数?
  • 乔,您对连续单元格的需求是正确的,每个单元格都有机会成为“第一”。除了单个单元格中的参数之外,没有其他参数。我的实际数据有 4 行,一些 12 行等。
  • 那么如果是12行的话,需要12组组合吗?
  • 是的。为清楚起见,将编辑原件。谢谢你指导我。
  • +1 个有趣的问题

标签: excel vba


【解决方案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

【讨论】:

    【解决方案2】:

    伪代码解决方案

    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
    

    尝试编写此代码,如果遇到困难,请回复

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-15
      相关资源
      最近更新 更多