- Tham gia
- 5/6/23
- Bài viết
- 106
- Được thích
- 19
Option Explicit
Sub code1()
MsgBox "call code1"
End Sub
Sub code2()
MsgBox "call code2"
End Sub
Sub code3()
MsgBox "call code3"
End Sub
Sub A_A()
Dim i, j, k
On Error Resume Next
For i = 1 To 3 '10000000000
j = i Mod 3 + 1
k = "code" & j
Run k
Next i
End Sub
Thì coi 3 số cuối này là trường hợp riêng so với mấy thằng 'không khùng' bên trên;Quý vị có thấy 3 lần gọi cuối cùng nó chả theo mót miếc gì hết hôn?
. . . .
Chú: biết là thớt cẩu thả nhưng mình cứ tưởng tượng gặp hợp khùng khịu thế này thì giải ra sao?
Dim J As Integer
Sub Choose_3()
Dim Tmp As String
J = 0
Do
J = J + 1: If J > 100 Then Exit Do
If J = 10 Then J = 97
If J > 97 Then
Tmp = Switch(J = 98, "ABC", J = 99, "Dasers", J = 100, "Daserdadsgs", J = 101, "Quá Ngu")
GPE Tmp
Else
GPE Choose((J Mod 3) + 1, "Daserdadsgs", "ABC", "Dasers")
End If
Loop
End Sub
Sub GPE(Tmp As String)
MsgBox Tmp, , J
End Sub
Sub testCallByStep()
Dim i%, iStep%
iStep = 3
While i < 100
i = i + 1
' cach goi 1
Application.OnTime Now,"'" & ThisWorkbook.Name & "'!code" & CStr((i - 1) Mod iStep + 1)
' cach goi 2
Application.Run "'" & ThisWorkbook.Name & "'!code" & CStr((i - 1) Mod iStep + 1)
Wend
End Sub
mình chạy thử bị lỗi dòng này: Application.Run "'" & ThisWorkbook.Name & "'!code" & CStr((i - 1) Mod iStep + 1)@Văn Toàn 1996
Bạn có thể sử dụng toán tử Mod, do khi chia dư số bị chia bằng số được chia sẽ là 0 nên cần giảm đi 1 giá trị, và thêm 1 giá trị sau khi chia.
JavaScript:Sub testCallByStep() Dim i%, iStep% iStep = 3 While i < 100 i = i + 1 ' cach goi 1 Application.OnTime Now,"'" & ThisWorkbook.Name & "'!code" & CStr((i - 1) Mod iStep + 1) ' cach goi 2 Application.Run "'" & ThisWorkbook.Name & "'!code" & CStr((i - 1) Mod iStep + 1) Wend End Sub
Chắc có lẽ chủ thớt tính nhẩm 100 - 1 = 99 chia hết cho 3Quý vị có thấy 3 lần gọi cuối cùng nó chả theo mót miếc gì hết hôn?
For i2 = 1 to 33
Code1
Code2
Code3
If i2 = 32 Then Code1 ' coi như i = 97
' đợt tới i coi như 98-99-100
Next i
Chú: biết là thớt cẩu thả nhưng mình cứ tưởng tượng gặp hợp khùng khịu thế này thì giải ra sao?
Ai mà biết được lô gic của mấy bộ óc đi trước thời đại 10 năm.Chắc có lẽ chủ thớt tính nhẩm 100 - 1 = 99 chia hết cho 3![]()
Code bạn Test kỷ là Sai Nhé. nó chạy Code 2 -> Code 3 -> Code 1. Sai ở lần đầu tiên- - - - - - - - - -Mã:Option Explicit Sub code1() MsgBox "call code1" End Sub Sub code2() MsgBox "call code2" End Sub Sub code3() MsgBox "call code3" End Sub Sub A_A() Dim i, j, k On Error Resume Next For i = 1 To 3 '10000000000 j = i Mod 3 + 1 k = "code" & j Run k Next i End Sub
Sub Main()
Dim i As Long
For i = 1 To 9
Select Case i Mod 3
Case 1
code1
Case 2
code2
Case 0
code3
End Select
Next i
End Sub
Chổ tới 98,99,100 là người ta Minh Họa đến 1 số nào đó chỉ là 1 con số ví dụ. Còn muốn đúng chu kỳ ví dụ 3 chu kỳ mà muốn lặp lại 30 lần thì Next i đến 99.Quý vị có thấy 3 lần gọi cuối cùng nó chả theo mót miếc gì hết hôn?
For i2 = 1 to 33
Code1
Code2
Code3
If i2 = 32 Then Code1 ' coi như i = 97
' đợt tới i coi như 98-99-100
Next i
Chú: biết là thớt cẩu thả nhưng mình cứ tưởng tượng gặp hợp khùng khịu thế này thì giải ra sao?
Có lẽ không cần thiết phải mất công code lại đâu bạn.Code bạn Test kỷ là Sai Nhé. nó chạy Code 2 -> Code 3 -> Code 1. Sai ở lần đầu tiên
Mình Chỉnh lại chính xác tuyệt đối nhé
Mã:Sub Main() Dim i As Long For i = 1 To 9 Select Case i Mod 3 Case 1 code1 Case 2 code2 Case 0 code3 End Select Next i End Sub
Anh nói người ta Điên Khùng Nhưng code của anh Trật Lất. code chạy sai thứ tự từ 1 đến 3 và lặp lạiPHP:Sub VongLap3_100() Dim J As Integer For J = 1 To 100 If J Mod 3 <> 0 Then GPE J Mod 3 Else GPE 3 End If Next J End Sub
Mã:Sub GPE(W As Integer) MsgBox Str(W) End Sub
Dim J As Integer
Sub Choose_3()
For J = 1 To 9
GPE Choose((J Mod 3) + 1, "Code 3", "code 2", "Code 1")
Next J
End Sub
Sub GPE(Tmp As String)
MsgBox Tmp, , J
End Sub
Ví dụ sai thì ví dụ làm chi....
Chổ tới 98,99,100 là người ta Minh Họa đến 1 số nào đó chỉ là 1 con số ví dụ. Còn muốn đúng chu kỳ ví dụ 3 chu kỳ mà muốn lặp lại 30 lần thì Next i đến 99.