Tạo chuỗi từ các ký tự ngẫu nhiên

Liên hệ QC

tranchithanh996

Thành viên mới
Tham gia
26/8/18
Bài viết
5
Được thích
1
anh chị giúp em cách random số ( từ 0 đến 9 ) và chữ ( a b c e f ) gồm 64 kí tự được không ạ, em cám ơn
 
Bạn xem thử thế này có được
Mã:
Sub myrandom()
Dim ListRnd As Variant
Dim Res(63)
Dim i As Integer, j As Integer
ListRnd = Split("0 1 2 3 4 5 6 7 8 9 a b c e f")
Randomize
Do While j <= 63
    i = (Rnd * 140) \ 10
    Res(j) = ListRnd(i)
    j = j + 1
Loop
Sheet1.Range("a1") = Replace(Join(Res), " ", "")
End Sub
 
Upvote 0
Bạn xem thử thế này có được
Mã:
Sub myrandom()
Dim ListRnd As Variant
Dim Res(63)
Dim i As Integer, j As Integer
ListRnd = Split("0 1 2 3 4 5 6 7 8 9 a b c e f")
Randomize
Do While j <= 63
    i = (Rnd * 140) \ 10
    Res(j) = ListRnd(i)
    j = j + 1
Loop
Sheet1.Range("a1") = Replace(Join(Res), " ", "")
End Sub


cái này làm trên imacros hay excel vay bạn
 
Upvote 0
Là macro trong excel bạn.
Mở 1 file excel lên, nhấn alt + F11, nhấn alt+I+M rồi dán đoạn code ở trên vào.
Nhấn alt+Q
Nhấn alt+F8 đề chạy
 
Upvote 0
anh chị giúp em cách random số ( từ 0 đến 9 ) và chữ ( a b c e f ) gồm 64 kí tự được không ạ, em cám ơn
Từ 0 đến F là các ký tự Hexa rồi. Vậy cũng dễ
Mã:
Function RandHexNum(ByVal Length As Long) As String
  Dim idx As Long
  Dim hVal As String
  'Application.Volatile   ''<--- thêm dòng này vào nếu muốn kết quả thay đổi khi bấm F9
  Randomize
  For idx = 1 To Length
    hVal = Hex(Int(Rnd * 16))
    RandHexNum = RandHexNum & hVal
  Next
End Function
Sau khi copy code vào module, ra ngoài bảng tính gõ vào cell bất kỳ công thức =RandHexNum(64)
Con số 64 là độ dài chuỗi
 
Upvote 0
Từ 0 đến F là các ký tự Hexa rồi. Vậy cũng dễ
Mã:
Function RandHexNum(ByVal Length As Long) As String
  Dim idx As Long
  Dim hVal As String
  'Application.Volatile   ''<--- thêm dòng này vào nếu muốn kết quả thay đổi khi bấm F9
  Randomize
  For idx = 1 To Length
    hVal = Hex(Int(Rnd * 16))
    RandHexNum = RandHexNum & hVal
  Next
End Function
Sau khi copy code vào module, ra ngoài bảng tính gõ vào cell bất kỳ công thức =RandHexNum(64)
Con số 64 là độ dài chuỗi
thanks
Bài đã được tự động gộp:

Là macro trong excel bạn.
Mở 1 file excel lên, nhấn alt + F11, nhấn alt+I+M rồi dán đoạn code ở trên vào.
Nhấn alt+Q
Nhấn alt+F8 đề chạy
thanks
Bài đã được tự động gộp:

Từ 0 đến F là các ký tự Hexa rồi. Vậy cũng dễ
Mã:
Function RandHexNum(ByVal Length As Long) As String
  Dim idx As Long
  Dim hVal As String
  'Application.Volatile   ''<--- thêm dòng này vào nếu muốn kết quả thay đổi khi bấm F9
  Randomize
  For idx = 1 To Length
    hVal = Hex(Int(Rnd * 16))
    RandHexNum = RandHexNum & hVal
  Next
End Function
Sau khi copy code vào module, ra ngoài bảng tính gõ vào cell bất kỳ công thức =RandHexNum(64)
Con số 64 là độ dài chuỗi
thanks
 
Upvote 0
anh chị giúp em cách random số ( từ 0 đến 9 ) và chữ ( a b c e f ) gồm 64 kí tự được không ạ, em cám ơn
Một cách bằng công thức.
1. Đặt name i
Công thức:
=MID("0123456789abcdef",RANDBETWEEN(1,16),1)
Hoặc:
=DEC2HEX(RANDBETWEEN(0,15))
Trên bảng tính, nối 64 name i với nhau bằng dấu & , mẫu= i&i&i ...
2. Nếu mỏi tay, đặt tiếp name j :
=i&i&i&i&i&i&i&i
Công thức trên bảng tính:
=J&j&j&j&j&j&j&j
 
Lần chỉnh sửa cuối:
Upvote 0
Được bài #4 đọc kỹ bài #1 (bài #3 thì uýnh bài #1). Chịu!!!#$$%&
 
Upvote 0
Function mà xài lệnh randomize xả láng? Fill 10 ô thì nó randomize 10 lần?
Kết quả đã được xác định số ký tự. Thế mả mỗi lượt vòng lặp ra một ký tự thì nối vào chuỗi (bắt đầu bằng 0, nói từ từ cho đến đùng độ dài ?
Code hơi non tay.

1. Dùng một biến toàn cục hoặc Static để buộc chỉ Randomize 1 lần thôi.
2. Đặt kết quả trước là = Space(độ dài). Dùng hàm Mid để ghi từng ký tự kết quả.
 
Upvote 0
Kết quả đã được xác định số ký tự. Thế mả mỗi lượt vòng lặp ra một ký tự thì nối vào chuỗi (bắt đầu bằng 0, nói từ từ cho đến đùng độ dài ?
Code hơi non tay.
1. ...
2. Đặt kết quả trước là = Space(độ dài). Dùng hàm Mid để ghi từng ký tự kết quả.
Cái này chính xác. Nhưng đôi khi lười thì cứ nối chuỗi cũng được.

Chỉ khi số lần nối chuỗi cực lớn - tạo những chuỗi ngắn nhưng số lượng chuỗi cực lớn, hoặc chỉ tạo 1 chuỗi nhưng từ số lượng cực lớn những chuỗi ngắn.

Phải dùng MID vì việc nối chuỗi rất tốn điện nước.

Ví dụ điển hình phải dùng MID là nối các ô của bảng 5 cột và 15000 dòng thành một chuỗi dài lê thê "cân nặng" vài MB. Nếu dùng nối chuỗi thông thường & thì mỗi lần làm phải đi nhậu để đợi code làm xong
 
Upvote 0
Điều 1 thì sao bác?
Nếu hàm được dùng nhiều lần thì có một điều nguy hiểm.
Nếu code trên thoát được thì chỉ là điều may mắn. Theo tôi thì gặp cấu hình máy thật mạnh, kết quả có thể không như mong muốn.
 
Upvote 0
Web KT

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

Back
Top Bottom