0

我对 VBA 宏和 Excel 非常陌生,我有一个小问题需要解决。

假设我有一个包含 20 行单个单词/字母的 A 列和一个包含5 行单个单词/字母的B列。

如何循环遍历A 列,从 A1 开始并随机选择B列中的一行相加以形成一个新字符串,该字符串将在C 列中输出?

这意味着我希望输出在C 列中看起来像这样:

A1 (for each A) + B2 (random)
A2 (for each A) + B4 (random)
A3 (for each A) + B1 (random)
A4 (for each A) + B3 (random)
A5 (for each A) + B4 (random)
A6 (for each A) + B2 (random)
...

等等等等。

任何人都知道如何实现这一目标?

4

1 回答 1

3

尝试:

Sub HTH()
    Dim rCell As Range
    Dim iRandom As Integer

    For Each rCell In Range("A1:A20")
        iRandom = Application.WorksheetFunction.RandBetween(1, 5)
        rCell.Offset(, 2).Value = CStr(rCell.Value & Cells(iRandom, "B").Value)
    Next rCell

End Sub

由于您已标记 Excel 2007,您可能需要改用它:

iRandom = Round((5 - 1) * Rnd + 1, 0)
于 2013-07-25T10:09:22.973 回答