Giúp code trộn 4 chuỗi không trùng nhau

Liên hệ QC

myloveqn2005

Thành viên mới
Tham gia
21/12/21
Bài viết
6
Được thích
0
Ví dụ em có 4 chuỗi A, B, C, D
Mọi người giúp em trộn 4 chuỗi này rồi nối lại với nhau mà không bị trùng với ạ.
Vd: ABCD, BCDA....
em cám ơn ạ.
 
Ví dụ em có 4 chuỗi A, B, C, D
Mọi người giúp em trộn 4 chuỗi này rồi nối lại với nhau mà không bị trùng với ạ.
Vd: ABCD, BCDA....
em cám ơn ạ.
Thử code.
Mã:
Sub sdfds()
   Const m = 4
   Dim arr, kq(1 To 1000, 1 To 1), a As Long, dic As Object, kiemtra(0 To 3) As Boolean, i As Long
   Dim s As String, b As Long, c As Long, e As Long, k As Long
   Set dic = CreateObject("scripting.dictionary")
   arr = Array("A", "B", "C", "D", "E")
   k = 1
   For i = 1 To m
       k = k * i
   Next i
    Do
      b = Fix(Rnd() * m)
      If kiemtra(b) = False Then
         c = c + 1
         s = s & arr(b)
         kiemtra(b) = True
      End If
      If c = m Then
         c = 0
         If Not dic.exists(s) Then
            a = a + 1
            kq(a, 1) = s
            dic.Add s, a
         End If
         s = Empty
         Erase kiemtra
      End If
      If a = k Then Exit Do
    Loop
   Sheet1.Range("A1:A1000").ClearContents
   Sheet1.Range("A1").Resize(a).Value = kq
   Set dic = Nothing
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Cụ thể em có 5 chuỗi ạ.
Bài đã được tự động gộp:

Thử code.
Mã:
Sub sdfds()
   Const m = 4
   Dim arr, kq(1 To 1000, 1 To 1), a As Long, dic As Object, kiemtra(0 To 4) As Boolean, i As Long
   Dim s As String, b As Long, c As Long, e As Long, k As Long
   Set dic = CreateObject("scripting.dictionary")
   arr = Array("A", "B", "C", "D", "E")
   k = 1
   For i = 1 To m
       k = k * i
   Next i
    Do
      b = Fix(Rnd() * m)
      If kiemtra(b) = False Then
         c = c + 1
         s = s & arr(b)
         kiemtra(b) = True
      End If
      If c = m Then
         c = 0
         If Not dic.exists(s) Then
            a = a + 1
            kq(a, 1) = s
            dic.Add s, a
         End If
         s = Empty
         Erase kiemtra
      End If
      If a = k Then Exit Do
    Loop
   Sheet1.Range("A1:A1000").ClearContents
   Sheet1.Range("A1").Resize(a).Value = kq
   Set dic = Nothing
End Sub[/C
[/QUOTE]
Bài đã được tự động gộp:

Thử code.
Mã:
Sub sdfds()
   Const m = 4
   Dim arr, kq(1 To 1000, 1 To 1), a As Long, dic As Object, kiemtra(0 To 4) As Boolean, i As Long
   Dim s As String, b As Long, c As Long, e As Long, k As Long
   Set dic = CreateObject("scripting.dictionary")
   arr = Array("A", "B", "C", "D", "E")
   k = 1
   For i = 1 To m
       k = k * i
   Next i
    Do
      b = Fix(Rnd() * m)
      If kiemtra(b) = False Then
         c = c + 1
         s = s & arr(b)
         kiemtra(b) = True
      End If
      If c = m Then
         c = 0
         If Not dic.exists(s) Then
            a = a + 1
            kq(a, 1) = s
            dic.Add s, a
         End If
         s = Empty
         Erase kiemtra
      End If
      If a = k Then Exit Do
    Loop
   Sheet1.Range("A1:A1000").ClearContents
   Sheet1.Range("A1").Resize(a).Value = kq
   Set dic = Nothing
End Sub
Bác ơi em rốt cái excel bác có thể cho em xin file mẫu được không ạ. Em copy vào VBA nhưng không biết Function của nó là gì ạ
Bài đã được tự động gộp:

Vấn đề là có chắc 4 chuỗi hôn? Viết code cho đã rồi thành ra n chuỗi.
Chính xác là em chỉ có 5 chuỗi thôi ạ
 
Lần chỉnh sửa cuối:
Upvote 0
Cụ thể em có 5 chuỗi ạ.
Bài đã được tự động gộp:


Bài đã được tự động gộp:


Bác ơi em rốt cái excel bác có thể cho em xin file mẫu được không ạ. Em copy vào VBA nhưng không biết Function của nó là gì ạ
Bài đã được tự động gộp:


Chính xác là em chỉ có 5 chuỗi thôi ạ
Đây nhé bạn bấm vào nút chuỗi không được giống nhau không thì chạy mãi không hết.
 

File đính kèm

  • Book1.xlsm
    17.7 KB · Đọc: 12
Upvote 0
Cho cái ví dụ cụ thể lên bạn.Mà có 4 chuỗi hay nhiều hơn.
Ví dụ em có 4 chuỗi A, B, C, D
Mọi người giúp em trộn 4 chuỗi này rồi nối lại với nhau mà không bị trùng với ạ.
Vd: ABCD, BCDA....
có thể tham khảo bài này nha, bài này tui viết với dữ liệu mặc định là 4 và ABCD, bạn tự phát triển thêm code nha
 

File đính kèm

  • LIET KE HOAN VI.xlsb
    17.3 KB · Đọc: 8
Upvote 0
Thành thật rất cám ơn bác. Mỗi tội em ngu lập trình quá, tại em cũng ko nghĩ đề bài này lại nâng cao tới vây. em có dùng "=$F$2&VLOOKUP(RANDBETWEEN(1,5),$E$3:$F$7,2,0)&VLOOKUP(RANDBETWEEN(2,5),$E$3:$F$7,2,0)&VLOOKUP(RANDBETWEEN(3,5),$E$3:$F$7,2,0)&VLOOKUP(RANDBETWEEN(4,5),$E$3:$F$7,2,0)&VLOOKUP(RANDBETWEEN(5,5),$E$3:$F$7,2,0)" nhưng mà nó bị lặp lại.
 

File đính kèm

  • demo.xlsx
    14.3 KB · Đọc: 6
Upvote 0
Web KT

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

Back
Top Bottom