0

私は VBA マクロと Excel を初めて使用し、解決しなければならない小さな問題があります。

1 つの単語/文字が 20 行ある列 Aと、1 つの単語/文字が 5 行ある列 Bがあるとします。

A1 から始めてColumn Aをループし、列 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 に答える