Vòng lặp do ... until bị treo

doantrungtuan

Thành viên mới
Tham gia ngày
1 Tháng mười một 2019
Bài viết
14
Được thích
0
Điểm
13
Tuổi
35
Nhờ anh/ chị giúp mình dừng code này. Cần thêm lệnh gì và đặt ở đâu?
Chẳng hạn: mỗi khi random thì cho ra giá trị khác chứ không được trùng vs giá trị trước đó. Và nếu không tìm thấy thì thông báo và dừng vòng lặp do ..until
Mình không rành về code lắm, chỉ cố gắng được đến đây.
Anh/ chị có giải pháp nào tốt hơn không? Xin cám ơn nhiều!
 
Lần chỉnh sửa cuối:

snow25

Thành viên gắn bó
Tham gia ngày
24 Tháng bảy 2018
Bài viết
2,679
Được thích
2,603
Điểm
360
Nhờ anh/ chị giúp mình File này. Khi chạy hay bị treo, Không biết có phải do dữ liệu trùng không? Khi giảm điều kiện KT xuống cũng bị treo (chẳng hạn chỉ kiểm tra ST2=ST4=ST6; ST3=ST5=ST7). Có khi chỉ chạy trên 1 sheet cũng bị treo (cứ chạy đươc 4 hoặc 6 lần là bị treo mặc dù không có trùng dữ liệu với các sheet khác, lúc này end sub đi chạy lại được).
Mình không rành về code lắm, chỉ cố gắng được đến đây.
Anh/ chị có giải pháp nào tốt hơn không? Xin cám ơn nhiều!
Mình không xem code nhưng mà nên chuyển dùng vòng lặp không xác định thay bằng cái khác đi.Mình dùng điện thoại bạn có thể copy code lên xem nào.
 

doantrungtuan

Thành viên mới
Tham gia ngày
1 Tháng mười một 2019
Bài viết
14
Được thích
0
Điểm
13
Tuổi
35
Mình không xem code nhưng mà nên chuyển dùng vòng lặp không xác định thay bằng cái khác đi.Mình dùng điện thoại bạn có thể copy code lên xem nào.
Sub XUATGT()
Application.ScreenUpdating = False

Static i, j, k, cc, lra, lrb, pt As Integer
Static GT As String
Static KT As Boolean

lra = Cells(Rows.Count, 1).End(xlUp).Row
lrb = WorksheetFunction.CountIf(Range("F9:F" & lra), "x")
pt = lra - Cells(6, 3) * 2
Columns("H:BB").Delete
Cells(1, 10) = lra
Cells(1, 11) = lrb
Cells(1, 12) = pt
'xuat giam thi 1 - lan 1

For i = 9 To Cells(6, 3) + 8
Do
GT = WorksheetFunction.Index(Range("B9:B" & lra), Int(Rnd() * ((lrb + 1) - 1) + 1))
KT = GT = Sheet3.Cells(i, 10) Or GT = Sheet3.Cells(i, 11) Or GT = Sheet3.Cells(i, 16) Or GT = Sheet3.Cells(i, 17) _
Or GT = Sheet4.Cells(i, 10) Or GT = Sheet4.Cells(i, 11) Or GT = Sheet4.Cells(i, 16) Or GT = Sheet4.Cells(i, 17) _
Or GT = Sheet5.Cells(i, 10) Or GT = Sheet5.Cells(i, 11) Or GT = Sheet5.Cells(i, 16) Or GT = Sheet5.Cells(i, 17) _
Or GT = Sheet6.Cells(i, 10) Or GT = Sheet6.Cells(i, 11) Or GT = Sheet6.Cells(i, 16) Or GT = Sheet6.Cells(i, 17) _
Or GT = Sheet7.Cells(i, 10) Or GT = Sheet7.Cells(i, 11) Or GT = Sheet7.Cells(i, 16) Or GT = Sheet7.Cells(i, 17) _
Or GT = Sheet8.Cells(i, 10) Or GT = Sheet8.Cells(i, 11) Or GT = Sheet8.Cells(i, 16) Or GT = Sheet8.Cells(i, 17) _
Or GT = Sheet9.Cells(i, 10) Or GT = Sheet9.Cells(i, 11) Or GT = Sheet9.Cells(i, 16) Or GT = Sheet9.Cells(i, 17) _
Or GT = Sheet10.Cells(i, 10) Or GT = Sheet10.Cells(i, 11) Or GT = Sheet10.Cells(i, 16) Or GT = Sheet10.Cells(i, 17) _
Or GT = Sheet11.Cells(i, 10) Or GT = Sheet11.Cells(i, 11) Or GT = Sheet11.Cells(i, 16) Or GT = Sheet11.Cells(i, 17) _
Or GT = Sheet12.Cells(i, 10) Or GT = Sheet12.Cells(i, 11) Or GT = Sheet12.Cells(i, 16) Or GT = Sheet12.Cells(i, 17) _
Or GT = Sheet13.Cells(i, 10) Or GT = Sheet13.Cells(i, 11) Or GT = Sheet13.Cells(i, 16) Or GT = Sheet13.Cells(i, 17) _
Or GT = Sheet14.Cells(i, 10) Or GT = Sheet14.Cells(i, 11) Or GT = Sheet14.Cells(i, 16) Or GT = Sheet14.Cells(i, 17)
k = 0
For j = 9 To Cells(6, 3) + 8
If GT = Cells(j, 10) Then
k = k + 1
End If
Next j
Loop Until k = 0 And KT = False
If k = 0 Then
Cells(i, 10) = GT
End If
Next i
'xuat giam thi 2 - lan 1
For i = 9 To Cells(6, 3) + 8
Do
k = 0
GT = WorksheetFunction.Index(Range("B9:B" & lra), Int(Rnd() * ((lrb + 1) - 1) + 1))
KT = GT = Sheet3.Cells(i, 10) Or GT = Sheet3.Cells(i, 11) Or GT = Sheet3.Cells(i, 16) Or GT = Sheet3.Cells(i, 17) _
Or GT = Sheet4.Cells(i, 10) Or GT = Sheet4.Cells(i, 11) Or GT = Sheet4.Cells(i, 16) Or GT = Sheet4.Cells(i, 17) _
Or GT = Sheet5.Cells(i, 10) Or GT = Sheet5.Cells(i, 11) Or GT = Sheet5.Cells(i, 16) Or GT = Sheet5.Cells(i, 17) _
Or GT = Sheet6.Cells(i, 10) Or GT = Sheet6.Cells(i, 11) Or GT = Sheet6.Cells(i, 16) Or GT = Sheet6.Cells(i, 17) _
Or GT = Sheet7.Cells(i, 10) Or GT = Sheet7.Cells(i, 11) Or GT = Sheet7.Cells(i, 16) Or GT = Sheet7.Cells(i, 17) _
Or GT = Sheet8.Cells(i, 10) Or GT = Sheet8.Cells(i, 11) Or GT = Sheet8.Cells(i, 16) Or GT = Sheet8.Cells(i, 17) _
Or GT = Sheet9.Cells(i, 10) Or GT = Sheet9.Cells(i, 11) Or GT = Sheet9.Cells(i, 16) Or GT = Sheet9.Cells(i, 17) _
Or GT = Sheet10.Cells(i, 10) Or GT = Sheet10.Cells(i, 11) Or GT = Sheet10.Cells(i, 16) Or GT = Sheet10.Cells(i, 17) _
Or GT = Sheet11.Cells(i, 10) Or GT = Sheet11.Cells(i, 11) Or GT = Sheet11.Cells(i, 16) Or GT = Sheet11.Cells(i, 17) _
Or GT = Sheet12.Cells(i, 10) Or GT = Sheet12.Cells(i, 11) Or GT = Sheet12.Cells(i, 16) Or GT = Sheet12.Cells(i, 17) _
Or GT = Sheet13.Cells(i, 10) Or GT = Sheet13.Cells(i, 11) Or GT = Sheet13.Cells(i, 16) Or GT = Sheet13.Cells(i, 17) _
Or GT = Sheet14.Cells(i, 10) Or GT = Sheet14.Cells(i, 11) Or GT = Sheet14.Cells(i, 16) Or GT = Sheet14.Cells(i, 17)

For j = 9 To Cells(6, 3) + 8
If GT = Cells(j, 10) Or GT = Cells(j, 11) Then
k = k + 1
End If
Next j
Loop Until k = 0 And KT = False
If k = 0 Then
Cells(i, 11) = GT
End If
Next i
'xuat giam thi 3 - lan 1
For i = 9 To pt
Do
k = 0
GT = WorksheetFunction.Index(Range("B9:B" & lra), Int(Rnd() * (lra - 7 - 1)) + 1)
For j = 9 To pt + 8
KT = GT = Cells(j, 10) Or GT = Cells(j, 11) Or GT = Cells(j, 12)
If KT = True Then
k = k + 1
End If
Next j
Loop Until k = 0 And KT = False
If k = 0 Then
Cells(i, 12) = GT
End If
Next i
'xuat giam thi 1 - lan 2
For i = 9 To Cells(6, 3) + 8
Do
GT = WorksheetFunction.Index(Range("B9:B" & lra), Int(Rnd() * ((lrb + 1) - 1) + 1))
KT = GT = Sheet3.Cells(i, 10) Or GT = Sheet3.Cells(i, 11) Or GT = Sheet3.Cells(i, 16) Or GT = Sheet3.Cells(i, 17) _
Or GT = Sheet4.Cells(i, 10) Or GT = Sheet4.Cells(i, 11) Or GT = Sheet4.Cells(i, 16) Or GT = Sheet4.Cells(i, 17) _
Or GT = Sheet5.Cells(i, 10) Or GT = Sheet5.Cells(i, 11) Or GT = Sheet5.Cells(i, 16) Or GT = Sheet5.Cells(i, 17) _
Or GT = Sheet6.Cells(i, 10) Or GT = Sheet6.Cells(i, 11) Or GT = Sheet6.Cells(i, 16) Or GT = Sheet6.Cells(i, 17) _
Or GT = Sheet7.Cells(i, 10) Or GT = Sheet7.Cells(i, 11) Or GT = Sheet7.Cells(i, 16) Or GT = Sheet7.Cells(i, 17) _
Or GT = Sheet8.Cells(i, 10) Or GT = Sheet8.Cells(i, 11) Or GT = Sheet8.Cells(i, 16) Or GT = Sheet8.Cells(i, 17) _
Or GT = Sheet9.Cells(i, 10) Or GT = Sheet9.Cells(i, 11) Or GT = Sheet9.Cells(i, 16) Or GT = Sheet9.Cells(i, 17) _
Or GT = Sheet10.Cells(i, 10) Or GT = Sheet10.Cells(i, 11) Or GT = Sheet10.Cells(i, 16) Or GT = Sheet10.Cells(i, 17) _
Or GT = Sheet11.Cells(i, 10) Or GT = Sheet11.Cells(i, 11) Or GT = Sheet11.Cells(i, 16) Or GT = Sheet11.Cells(i, 17) _
Or GT = Sheet12.Cells(i, 10) Or GT = Sheet12.Cells(i, 11) Or GT = Sheet12.Cells(i, 16) Or GT = Sheet12.Cells(i, 17) _
Or GT = Sheet13.Cells(i, 10) Or GT = Sheet13.Cells(i, 11) Or GT = Sheet13.Cells(i, 16) Or GT = Sheet13.Cells(i, 17) _
Or GT = Sheet14.Cells(i, 10) Or GT = Sheet14.Cells(i, 11) Or GT = Sheet14.Cells(i, 16) Or GT = Sheet14.Cells(i, 17)
k = 0
For j = 9 To Cells(6, 3) + 8
If GT = Cells(j, 16) Or GT = Cells(j, 10) Then
k = k + 1
End If
Next j
Loop Until k = 0 And KT = False
If k = 0 Then
Cells(i, 16) = GT
End If
Next i
'xuat giam thi 2 - lan 2
For i = 9 To Cells(6, 3) + 8
Do
k = 0
GT = WorksheetFunction.Index(Range("B9:B" & lra), Int(Rnd() * ((lrb + 1) - 1) + 1))
KT = GT = Sheet3.Cells(i, 10) Or GT = Sheet3.Cells(i, 11) Or GT = Sheet3.Cells(i, 16) Or GT = Sheet3.Cells(i, 17) _
Or GT = Sheet4.Cells(i, 10) Or GT = Sheet4.Cells(i, 11) Or GT = Sheet4.Cells(i, 16) Or GT = Sheet4.Cells(i, 17) _
Or GT = Sheet5.Cells(i, 10) Or GT = Sheet5.Cells(i, 11) Or GT = Sheet5.Cells(i, 16) Or GT = Sheet5.Cells(i, 17) _
Or GT = Sheet6.Cells(i, 10) Or GT = Sheet6.Cells(i, 11) Or GT = Sheet6.Cells(i, 16) Or GT = Sheet6.Cells(i, 17) _
Or GT = Sheet7.Cells(i, 10) Or GT = Sheet7.Cells(i, 11) Or GT = Sheet7.Cells(i, 16) Or GT = Sheet7.Cells(i, 17) _
Or GT = Sheet8.Cells(i, 10) Or GT = Sheet8.Cells(i, 11) Or GT = Sheet8.Cells(i, 16) Or GT = Sheet8.Cells(i, 17) _
Or GT = Sheet9.Cells(i, 10) Or GT = Sheet9.Cells(i, 11) Or GT = Sheet9.Cells(i, 16) Or GT = Sheet9.Cells(i, 17) _
Or GT = Sheet10.Cells(i, 10) Or GT = Sheet10.Cells(i, 11) Or GT = Sheet10.Cells(i, 16) Or GT = Sheet10.Cells(i, 17) _
Or GT = Sheet11.Cells(i, 10) Or GT = Sheet11.Cells(i, 11) Or GT = Sheet11.Cells(i, 16) Or GT = Sheet11.Cells(i, 17) _
Or GT = Sheet12.Cells(i, 10) Or GT = Sheet12.Cells(i, 11) Or GT = Sheet12.Cells(i, 16) Or GT = Sheet12.Cells(i, 17) _
Or GT = Sheet13.Cells(i, 10) Or GT = Sheet13.Cells(i, 11) Or GT = Sheet13.Cells(i, 16) Or GT = Sheet13.Cells(i, 17) _
Or GT = Sheet14.Cells(i, 10) Or GT = Sheet14.Cells(i, 11) Or GT = Sheet14.Cells(i, 16) Or GT = Sheet14.Cells(i, 17)

For j = 9 To Cells(6, 3) + 8
If GT = Cells(j, 16) Or GT = Cells(j, 17) Or GT = Cells(j, 11) Then
k = k + 1
End If
Next j

Loop Until k = 0 And KT = False
If k = 0 Then
Cells(i, 17) = GT
End If
Next i
'xuat giam thi 3 - lan 2
For i = 9 To pt
Do
k = 0
GT = WorksheetFunction.Index(Range("B9:B" & lra), Int(Rnd() * ((lra - 7) - 1) + 1))
For j = 9 To pt + 8
If GT = Cells(j, 16) Or GT = Cells(j, 17) Or GT = Cells(j, 18) Then
k = k + 1
End If
Next j
Loop Until k = 0
If k = 0 Then
Cells(i, 18) = GT
End If
Next i
Call DINHDANG
Application.ScreenUpdating = False

End Sub
 

SA_DQ

/(hông là gì!
Thành viên danh dự
Tham gia ngày
8 Tháng sáu 2006
Bài viết
11,775
Được thích
17,625
Điểm
1,860
Nhồm vô câu lệnh này thấy mà kinh dị:
KT = GT = Sheet3.Cells(i, 10) Or GT = Sheet3.Cells(i, 11) Or GT = Sheet3.Cells(i, 16) Or GT = Sheet3.Cells(i, 17) _
Or GT = Sheet4.Cells(i, 10) Or GT = Sheet4.Cells(i, 11) Or GT = Sheet4.Cells(i, 16) Or GT = Sheet4.Cells(i, 17) _
Or GT = Sheet5.Cells(i, 10) Or GT = Sheet5.Cells(i, 11) Or GT = Sheet5.Cells(i, 16) Or GT = Sheet5.Cells(i, 17) _
Or GT = Sheet6.Cells(i, 10) Or GT = Sheet6.Cells(i, 11) Or GT = Sheet6.Cells(i, 16) Or GT = Sheet6.Cells(i, 17) _
Or GT = Sheet7.Cells(i, 10) Or GT = Sheet7.Cells(i, 11) Or GT = Sheet7.Cells(i, 16) Or GT = Sheet7.Cells(i, 17) _
Or GT = Sheet8.Cells(i, 10) Or GT = Sheet8.Cells(i, 11) Or GT = Sheet8.Cells(i, 16) Or GT = Sheet8.Cells(i, 17) _
Or GT = Sheet9.Cells(i, 10) Or GT = Sheet9.Cells(i, 11) Or GT = Sheet9.Cells(i, 16) Or GT = Sheet9.Cells(i, 17) _
Or GT = Sheet10.Cells(i, 10) Or GT = Sheet10.Cells(i, 11) Or GT = Sheet10.Cells(i, 16) Or GT = Sheet10.Cells(i, 17) _
Or GT = Sheet11.Cells(i, 10) Or GT = Sheet11.Cells(i, 11) Or GT = Sheet11.Cells(i, 16) Or GT = Sheet11.Cells(i, 17) _
Or GT = Sheet12.Cells(i, 10) Or GT = Sheet12.Cells(i, 11) Or GT = Sheet12.Cells(i, 16) Or GT = Sheet12.Cells(i, 17) _
Or GT = Sheet13.Cells(i, 10) Or GT = Sheet13.Cells(i, 11) Or GT = Sheet13.Cells(i, 16) Or GT = Sheet13.Cells(i, 17) _
Or GT = Sheet14.Cells(i, 10) Or GT = Sheet14.Cells(i, 11) Or GT = Sheet14.Cells(i, 16) Or GT = Sheet14.Cells(i, 17)

Mà nó có tác dụng gì vậy bạn chủ bài đăng?
 

doantrungtuan

Thành viên mới
Tham gia ngày
1 Tháng mười một 2019
Bài viết
14
Được thích
0
Điểm
13
Tuổi
35
Giá trị GT là lấy tên ngẫu nhiên trong danh sách cho trước. Rồi đem KT (=GT) đem so sánh với với các giá trị ở ô trong sheet khác cùng dòng. Chỉ cần phát hiện trùng với bất kì 1 dòng nào trong các cột đó thì lặp lại tìm giá trị GT khác.
Mình nghĩ nó bị trùng và không thoát được vòng lặp. ( cái này chắc chịu thua)
Nhưng có khi chỉ chạy trên 1 sheet và các sheet khác không có dữ liệu để so sánh. Mà cũng bị treo khi chạy đảo GT. Mà nó treo ở lần thứ 4 thì lần sau chạy lại cũng là lần thứ 4 lại treo
 

HeSanbi

Thành viên tích cực
Tham gia ngày
24 Tháng hai 2013
Bài viết
1,526
Được thích
1,695
Điểm
560
Bạn thử sửa lại đoạn này:

Static thành Dim

Dim i, j, k, cc, lra, lrb, pt As Integer
Dim GT As String
Dim KT As Boolean
 

Hau151978

Thành viên tích cực
Tham gia ngày
19 Tháng mười 2011
Bài viết
1,361
Được thích
1,257
Điểm
560
Để kiểm tra vòng lặp bị treo bạn có thể khai báo 1 biến đếm, biến này tăng 1 ở ngay đầu vòng lặp. Đặt con trỏ ở lệnh nằm dưới lệnh Loop rồi bấm F9 để đặt breakpoint ở đó. Trong cửa sổ watch, bạn thêm giá trị cần theo dõi là biến đếm ở trên, chọn Break khi biến này đạt giá trị nào đó (1 triệu chẳng hạn). Khi vòng lặp chạy quá nhiều thì code sẽ dừng.
 

doantrungtuan

Thành viên mới
Tham gia ngày
1 Tháng mười một 2019
Bài viết
14
Được thích
0
Điểm
13
Tuổi
35
Để kiểm tra vòng lặp bị treo bạn có thể khai báo 1 biến đếm, biến này tăng 1 ở ngay đầu vòng lặp. Đặt con trỏ ở lệnh nằm dưới lệnh Loop rồi bấm F9 để đặt breakpoint ở đó. Trong cửa sổ watch, bạn thêm giá trị cần theo dõi là biến đếm ở trên, chọn Break khi biến này đạt giá trị nào đó (1 triệu chẳng hạn). Khi vòng lặp chạy quá nhiều thì code sẽ dừng.
Cám ơn bạn mình sẽ thử
 

HieuCD

Chuyên gia GPE
Tham gia ngày
14 Tháng chín 2010
Bài viết
7,151
Được thích
14,074
Điểm
1,860
Nhờ anh/ chị giúp mình File này. Khi chạy hay bị treo, Không biết có phải do dữ liệu trùng không? Khi giảm điều kiện KT xuống cũng bị treo (chẳng hạn chỉ kiểm tra ST2=ST4=ST6; ST3=ST5=ST7). Có khi chỉ chạy trên 1 sheet cũng bị treo (cứ chạy đươc 4 hoặc 6 lần là bị treo mặc dù không có trùng dữ liệu với các sheet khác, lúc này end sub đi chạy lại được).
Mình không rành về code lắm, chỉ cố gắng được đến đây.
Anh/ chị có giải pháp nào tốt hơn không? Xin cám ơn nhiều!
Phân công coi thi không trùng dể bị chạy mãi không dừng, nếu dừng ngang thì không ra được kết quả
Mô tả dữ liệu ban đầu, yêu cầu xử lý kết quả để các bạn trên diễn đàn viết lại toàn bộ sẽ nhanh hơn sửa code
 

snow25

Thành viên gắn bó
Tham gia ngày
24 Tháng bảy 2018
Bài viết
2,679
Được thích
2,603
Điểm
360
Phân công coi thi không trùng dể bị chạy mãi không dừng, nếu dừng ngang thì không ra được kết quả
Mô tả dữ liệu ban đầu, yêu cầu xử lý kết quả để các bạn trên diễn đàn viết lại toàn bộ sẽ nhanh hơn sửa code
Em nhìn cái code dài lê thê.Bạn này chắc cũng chịu khó viết code.Để đọc hiểu cái code này chắc viết cái code mới có vẻ nhanh hơn anh à.
 

doantrungtuan

Thành viên mới
Tham gia ngày
1 Tháng mười một 2019
Bài viết
14
Được thích
0
Điểm
13
Tuổi
35
Đập đi xây mới thôi.
Anh / xem file excel dùm. Nếu cần viết code lại thì sẽ viết như thế nào?
Yêu cầu:
1. Giữ nguyên sheet "PhanCong" và sheet "DanhSach"
2. Lọc và phân ra các sheet ST2 ST3 .... dựa trên sheet DANHSACH và mục chấm chung trong sheet PHANCONG
3. Danh sách giám thị không được trùng nhau giữa các sheet st2 ct2 st3 ct3 ....
 

batman1

Thành viên gạo cội
Tham gia ngày
8 Tháng chín 2014
Bài viết
3,449
Được thích
5,209
Điểm
560
Anh / xem file excel dùm. Nếu cần viết code lại thì sẽ viết như thế nào?
Yêu cầu:
1. Giữ nguyên sheet "PhanCong" và sheet "DanhSach"
2. Lọc và phân ra các sheet ST2 ST3 .... dựa trên sheet DANHSACH và mục chấm chung trong sheet PHANCONG
3. Danh sách giám thị không được trùng nhau giữa các sheet st2 ct2 st3 ct3 ....
Bạn nhờ thì cứ nhờ mọi người. Gọi tên tôi nhưng chắc gì tôi có hứng, có thời gian. Mà quan trọng là chưa chắc tôi biết làm.
 

HieuCD

Chuyên gia GPE
Tham gia ngày
14 Tháng chín 2010
Bài viết
7,151
Được thích
14,074
Điểm
1,860
Em nhìn cái code dài lê thê.Bạn này chắc cũng chịu khó viết code.Để đọc hiểu cái code này chắc viết cái code mới có vẻ nhanh hơn anh à.
Dài do không biết cách dùng Dic, quan trọng là thuật toán sai đường nên code không thể sửa được
 

VetMini

Chuyên gia GPE
Tham gia ngày
21 Tháng mười hai 2012
Bài viết
9,998
Được thích
12,054
Điểm
1,560
Đại khái thì mấu chốt code này có một cái trị Rnd().
Mà ở đây dùng Rnd() lại không có Randomize cho nên chỉ là giả random. Cho nên mỗi lần mở lên chạy sẽ ra in hệt nhau. Mỗi lần chạy có khác nhau không thì tuy theo có đóng Project chưa.

Còn lại thì bố tôi cũng chẳng biết. Code không có chú thích thì ai biết do thuật toán sai hay code đi sai thuật toán.

Gợi ý: So sánh 1 giá trị nhiều lần thì có hai cách
1. dùng hàm Array nhét đám cần so sánh vào một mảng rồi dùng hàm Match mà dò.
2. dùng Select Case.
 
Lần chỉnh sửa cuối:

doantrungtuan

Thành viên mới
Tham gia ngày
1 Tháng mười một 2019
Bài viết
14
Được thích
0
Điểm
13
Tuổi
35
Đại khái thì mấu chốt code này có một cái trị Rnd().
Mà ở đây dùng Rnd() lại không có Randomize cho nên chỉ là giả random. Cho nên mỗi lần mở lên chạy sẽ ra in hệt nhau. Mỗi lần chạy có khác nhau không thì tuy theo có đóng Project chưa.
Phải rồi đó bạn. Mặc dù không có dữ liệu trùng. Nhưng cứ treo thì mở sub lại vẫn treo. Khắc phục như thế nào vậy bạn
 

khoa186

Thành viên chính thức
Tham gia ngày
23 Tháng mười một 2007
Bài viết
54
Được thích
4
Điểm
670
Chào bạn mình ko biết code gi đau,nhưng nếu bạn có hoặc code chuong trinh phan cong giam thi canh thi hoc kỳ thì cho mình xin nhé , cảm ơn bạn
 

doantrungtuan

Thành viên mới
Tham gia ngày
1 Tháng mười một 2019
Bài viết
14
Được thích
0
Điểm
13
Tuổi
35
Chào bạn mình ko biết code gi đau,nhưng nếu bạn có hoặc code chuong trinh phan cong giam thi canh thi hoc kỳ thì cho mình xin nhé , cảm ơn bạn
Mình không biết yêu cầu khi phân công của bạn như thế nào? Bạn tìm trên mạng có phần mềm PCGT 1.6 của tác giả Hoàng cường xem có giúp được gì không.
Còn fle của mình theo điều kiện tổ và có gv chấm chung
 

truongvu317

Thành viên tiêu biểu
Tham gia ngày
15 Tháng mười một 2010
Bài viết
600
Được thích
405
Điểm
435
Mà ở đây dùng Rnd() lại không có Randomize cho nên chỉ là giả random
Cháu đọc trên goolge thấy bảo là hàm rnd nếu đưa tham số nhận giá trị âm vào thì nó có chức năng giống hàm randomize, mà đến khi chạy thử để test thì nó lại khác nhau, thế là sao hả bác?, có khi nào không cần dùng hàm randomize mà vẫn ngẫu nhiên thật sự không ạ.
 
Top Bottom