Excel VBA-da A ustunini aylantiring, B ustunidan tasodifiy so'zni oling va C ustunidagi qatorni chiqaring

Men VBA Makroslari va Excel uchun juda yangiman va menda hal qilishim kerak bo'lgan kichik muammo bor.

Aytaylik, menda bitta so‘z/harfdan iborat 20 qatordan iboratA ustuni va bitta so‘z/harfdan iborat 5 qatordan iboratB ustuni bor.

Qanday qilib A1 dan boshlab A ustunini aylana olaman va ustunda chiqadigan yangi qator hosil qilish uchun B ustunidagi qatorni tasodifiy tanlayman. Cmi?

Ya'ni, men C ustunida natija shunday ko'rinishini xohlayman:

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)
...

va hokazo va boshqalar.

Bunga qanday erishish mumkinligi haqida hech kimning fikri bormi?


person Kyle Yeo    schedule 25.07.2013    source manba
comment
Sarlavha va matn yaratish Excel / VBA bilan berilgan jumlalar to'plami   -  person brettdj    schedule 25.07.2013


Javoblar (1)


Sinab ko'ring:

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-ni belgilaganingiz uchun uning o'rniga buni ishlatishingiz kerak bo'lishi mumkin:

iRandom = Round((5 - 1) * Rnd + 1, 0)
person Reafidy    schedule 25.07.2013