Прокрутите столбец A в Excel VBA, получите случайное слово из столбца B и выведите строку в столбце C.

Я очень новичок в макросах VBA и Excel, и у меня есть небольшая проблема, которую мне нужно решить.

Скажем, у меня есть столбец A с 20 стрками, состоящими из одного слова/буквы, и столбец B, содержащий 5 строк с одним словом/буквой.

Как выполнить цикл по столбцу A, начиная с A1, и случайным образом выбрать строку в столбце B, чтобы сложить вместе, чтобы сформировать новую строку, которая будет выводиться в столбце С?

Это означает, что я хочу, чтобы вывод в столбце 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)
...

и так далее и тому подобное.

Кто-нибудь знает, как этого добиться?


person Kyle Yeo    schedule 25.07.2013    source источник
comment
возможный дубликат Создание заголовка и набор заданных предложений с Excel/VBA   -  person brettdj    schedule 25.07.2013


Ответы (1)


Пытаться:

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)
person Reafidy    schedule 25.07.2013