Cách trộn số thứ tự lẫn lộn

Liên hệ QC

Huệ mẩu

Thành viên mới
Tham gia
8/9/21
Bài viết
2
Được thích
0
Mình muốn trộn các số thứ tự lẫn lộn nhau thì làm thế nào
 
Hahahahaha... thì trộn gõ lại thành aHahahahah...
 
Mình biết cách trộn, nhưng mình dốt viết tắt và không hiểu ko là gì.
Chỉnh câu hỏi cho dễ hiểu thì mình sẽ chỉ cho.
 
Mình muốn trộn các số thứ tự lẫn lộn nhau thì làm thế nào
Cái này đơn giản này. Ví dụ bạn có dãy số 1,2,3 chỉ cần sắp xếp nó lại thành 2,1,3 hoặc 3,1,2 thì là trộn rồi. Chỉ cần bỏ chút thời gian gõ lại là được ^_^
Với nội dung câu hỏi của bạn thì mình nghĩ đó là câu trả lời hợp lý. :yahoo:
 

File đính kèm

Gõ số đầu ở B1, số cuối ở D1 rồi bấm nút để trộn
Mình thấy bài này dùng Randomize kết hợp với Dic cũng hên xui lắm, dữ liệu vài chục, vài trăm dòng thì không sao, nó rùng mình một cái rồi cho kết quả, nhưng nếu từ 10.000 dòng trở lên, nếu xui mà "ngẫu nhiên" bị em Dic phát hiện trùng hoài ( mình nghĩ dữ liệu càng nhiều thì tỷ lệ trùng càng nhiều _ "hông" biết đúng "hông" nữa) thì nó quay vòng vòng trước khi cho kết quả
Thân
 
Mình thấy bài này dùng Randomize kết hợp với Dic cũng hên xui lắm, dữ liệu vài chục, vài trăm dòng thì không sao, nó rùng mình một cái rồi cho kết quả, nhưng nếu từ 10.000 dòng trở lên, nếu xui mà "ngẫu nhiên" bị em Dic phát hiện trùng hoài ( mình nghĩ dữ liệu càng nhiều thì tỷ lệ trùng càng nhiều _ "hông" biết đúng "hông" nữa) thì nó quay vòng vòng trước khi cho kết quả
Thân
20 ngàn dòng hết 7,5 giây. Cũng được chứ không tệ. Mà số thứ tự phách này cao tay lắm là 5 ngàn.
 
Mình muốn trộn các số thứ tự lẫn lộn nhau thì làm thế nào
Tham khảo thêm 1 cách
Mã:
Option Explicit

Sub abcd()
Dim Nguon
Dim Kq
Dim dau, cuoi, spt
Dim i, j, k

dau = Range("B1"): cuoi = Range("D1")
k = cuoi - dau + 1
ReDim Nguon(1 To k)
For j = 1 To k
    Nguon(j) = j
Next j
ReDim Kq(1 To k, 1 To 1)
Randomize
For i = 1 To UBound(Kq)
    j = Int(k * Rnd) + dau
    Kq(i, 1) = Nguon(j)
    Nguon(j) = Nguon(k)
    k = k - 1
Next i
Sheet1.Range("F2").Resize(UBound(Kq), UBound(Kq, 2)) = Kq
End Sub

---
code này copy cách hiển thị của file đính kèm trong bài 10 nhé bạn
 
Lần chỉnh sửa cuối:
Góp vui:
PHP:
Sub TronSo()
Dim arrKQ, i&, j&, k&, Dau&, Cuoi&, Vt&
Dim t#
Dau = Range("B1").Value
Cuoi = Range("D1").Value
t = Timer
k = Cuoi - Dau + 1
ReDim arrKQ(1 To k, 1 To 1)
For i = Dau To Cuoi
    Vt = Vt + 1
    arrKQ(Vt, 1) = i
Next
Randomize
For i = 1 To k
        Vt = Int(k * Rnd + 1)
        j = arrKQ(i, 1)
        arrKQ(i, 1) = arrKQ(Vt, 1)
        arrKQ(Vt, 1) = j
Next
    Range("F2").Resize(1000000, 1).ClearContents
    Range("F2").Resize(k, 1) = arrKQ
MsgBox Timer - t
End Sub
.
 
Lần chỉnh sửa cuối:
Ủa tưởng công thức ngắn gọn ở bài #7 đã xong rồi chứ? Vậy mà quất qua VBA luôn ta!?
 
Web KT

Bài viết mới nhất

Back
Top Bottom