我是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)
...
依此类推。
任何人都知道如何实现这个目标?
答案 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)