首页 > 解决方案 > 团队 A 和 B 随机生成器没有重复 - 代码仅适用于团队 A

问题描述

Team 1 A,B,C
Team 2 D,E,F

我的脚本仅与 Team 1 配对(仅从 1 列配对)。下次我配对时,如何将 Team 2 与 Team 1 配对而没有重复?

仅让团队 1 与团队 2 配对。团队 1 不需要配对,因为他们已经在一个团队中。

Sub RandomPairing()

  Dim Cnt As Long, RandomIndex As Long, Tmp As Variant, Arr As Variant
  Randomize

  Arr = Range("A2", Cells(Rows.Count, "A").End(xlUp))

  Arr = Range("B2", Cells(Rows.Count, "B").End(xlUp))

  For Cnt = UBound(Arr) To 1 Step -1
    RandomIndex = Int((Cnt - LBound(Arr) + 1) * Rnd + LBound(Arr))
    Tmp = Arr(RandomIndex, 1)
    Arr(RandomIndex, 1) = Arr(Cnt, 1)
    Arr(Cnt, 1) = Tmp

  Next
  Range("G4").Resize(UBound(Arr)) = Arr
  Range("G4").Offset(UBound(Arr) / 2).Resize(UBound(Arr)).Cut Range("H4")

End Sub

当前输出随机化第 1 队

甲,乙

丙、甲

乙,丙

我希望当前输出随机化团队 1 和团队 2

输出:

广告

C, F

乙,丁

没有重复。

标签: excelvba

解决方案


推荐阅读