在Excel VBA中循环显示A列,从B列中获取一个随机单词并输出C列中的行

时间:2013-07-25 09:28:41

标签: excel excel-vba excel-2007 excel-2010 vba

我是VBA宏和Excel的新手,我有一个小问题需要解决。

假设我有一个 A列,其中包含20行单个单词/字母,以及 B列,其中包含5行单个单词/字母。< / p>

如何循环遍历 A列,从A1开始并随机选择 B列中的一行添加到一起以形成一个新字符串,该字符串将在< strong> 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)
...

依此类推。

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

1 个答案:

答案 0 :(得分: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)