엑셀에서 모든 행의 값을 섞어주는 코드입니다.
빨간 버튼은 행 전체를 순서를 바꿔주고
파란 버튼은 현재 열에 한해서 내부의 셀값을 섞어줍니다.
Option Explicit
'// mix the entire row
Sub Shuffle()
Dim sht As Worksheet
Dim Rng As Range
Dim lastRow As Long, l As Long, r As Long
Dim t As Variant
Randomize
Application.ScreenUpdating = False
Set sht = ActiveSheet
lastRow = sht.Cells(sht.Rows.Count, "A").End(xlUp).Row
For l = 1 To lastRow
r = CLng(Rnd * (lastRow - 1)) + 1 '// 1...(LastRow)
t = sht.Rows(l).Value
sht.Rows(l).Value = sht.Rows(r).Value
sht.Rows(r).Value = t
Next l
Application.ScreenUpdating = True
End Sub
'// mix the cells only in the current column
Sub ShuffleColumn()
Dim sht As Worksheet
Dim Target As Range, Rng As Range
Dim t As String
Dim r As Long, ccol As Long, lastRow As Long
Randomize
Set sht = ActiveSheet
ccol = ActiveCell.Column
lastRow = sht.Cells(sht.Rows.Count, ccol).End(xlUp).Row
Set Target = sht.Range(sht.Cells(1, ccol), sht.Cells(lastRow, ccol))
For Each Rng In Target
r = CLng(Rnd * (Target.Count - 2)) + 1 '//1...(Count-1)
t = Rng.Text
Rng = Target(r).Text
Target(r) = t
Next Rng
End Sub
실행 화면:
>> 용도
- 단어리스트 섞기
- 문장 순서 섞기
- 순서 추첨
- 당첨자 무작위 추첨
- 조원 추첨
>>예시 파일
'XLS+VBA' 카테고리의 다른 글
구글 검색 API > 검색 결과 첫번째 링크 가져오기 (0) | 2024.07.03 |
---|---|
엑셀연동] 자동 방배정 및 명단 출력 2 (0) | 2024.05.23 |
엑셀연동] 방배정 명단 출력 1 (0) | 2024.05.23 |
교보문고 ISBN 도서 검색(JSON) (1) | 2024.05.15 |
네이버 API를 이용한 '네이버 쇼핑' 검색 결과 수집 (0) | 2024.02.20 |
엑셀에서 실시간 유튜브 구독자수 모니터링 (0) | 2024.02.15 |
온라인 이미지를 다운로드하여 아래로 이어 붙인 상품 이미지 일괄 생성 (0) | 2024.02.14 |
엑셀에서 ppt의 특정 페이지를 링크 (0) | 2023.11.21 |
최근댓글