Cấu trúc lệnh với For Next (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

khuongvietphong

Be all you can be !
Tham gia
6/7/14
Bài viết
2,069
Được thích
1,444
Nghề nghiệp
Ăn không ngồi rồi ^.^
Xin hỏi các thành viên trên GPE. Em có đọc được 1 đoạn Code này trên GPE :

Sub CellsExample()
For i = 1 To 10
For j = 1 To 10
Cells(i, j) = "Hang" & i & "cot" & j
Next J
Next i
End Sub

Em muốn hỏi là tại sao trong code trên ta lại phải viết Next J trước Next i ạ. Nếu viết Next i trước và Next j ​sau thì bị báo lỗi ạ.

Em xin cảm ơn !
 
Xin hỏi các thành viên trên GPE. Em có đọc được 1 đoạn Code này trên GPE :

Sub CellsExample()
For i = 1 To 10
For j = 1 To 10
Cells(i, j) = "Hang" & i & "cot" & j
Next J
Next i
End Sub

Em muốn hỏi là tại sao trong code trên ta lại phải viết Next J trước Next i ạ. Nếu viết Next i trước và Next j ​sau thì bị báo lỗi ạ.

Em xin cảm ơn !
Lỗi là đúng rồi xem cách trình bày code tự hiểu nha.....Còn giải thích mình kém lắm
PHP:
Sub CellsExample()
    For i = 1 To 10
        For J = 1 To 10
            Cells(i, J) = "Hang" & i & "cot" & J
        Next J
    Next i
End Sub
Cách mình viết Mặc định i là dòng, còn j là cột cứ thế mà duyệt tới.....nếu không thích vậy thì a,d,h ......tùy thích.....
 
Lần chỉnh sửa cuối:
Upvote 0
For của biến nào thì kết thúc Next phải là biến ấy => bạn viết theo kiểu râu ông nọ cắm cằm bà kia ...
 
Upvote 0
Để chắc như bắp, ta nên làm thế này:

Sau khi viết dòng lệnh
For J=1 to 9

Ta nên xuống hàng & viết ngay dòng lệnh

Next J

Sau đó chèn vài dòng trống vô giữa 2 dòng lệnh này & viết vô các dòng trống những dòng lệnh để thực hiện trong vòng lặp cụ thể đó;

Cũng vậy, nếu ta xài câu lệnh

If A = B Then

Ta nên thêm ngay dòng dưới là

End If

. . . . .

(& tuổi càng cao càng nên làm vậy; Tuy có chậm hơn mấy em trẻ nhưng chắc tin hơn)
 
Upvote 0
Xin hỏi các thành viên trên GPE. Em có đọc được 1 đoạn Code này trên GPE :

Sub CellsExample()
For i = 1 To 10
For j = 1 To 10
Cells(i, j) = "Hang" & i & "cot" & j
Next J
Next i
End Sub

Em muốn hỏi là tại sao trong code trên ta lại phải viết Next J trước Next i ạ. Nếu viết Next i trước và Next j ​sau thì bị báo lỗi ạ.

Em xin cảm ơn !
Nếu không hiểu bản chất vòng For lồng thì bạn có thể bỏ tên biến sau Next đi.
 
Upvote 0
Upvote 0
Lỗi là đúng rồi xem cách trình bày code tự hiểu nha.....Còn giải thích mình kém lắm
PHP:
Sub CellsExample()
    For i = 1 To 10
        For J = 1 To 10
            Cells(i, J) = "Hang" & i & "cot" & J
        Next J
    Next i
End Sub
Cách mình viết Mặc định i là dòng, còn j là cột cứ thế mà duyệt tới.....nếu không thích vậy thì a,d,h ......tùy thích.....

Trình bày thế này đúng là nhìn ra vấn đề luôn ấy ạ !
 
Upvote 0
Nếu không hiểu bản chất vòng For lồng thì bạn có thể bỏ tên biến sau Next đi.
Không đồng ý với ý kiến này. Nếu đã không hiểu thì không đụng tới, đã đụng tới thì phải hiểu rõ bản chất, chứ lơ tơ mơ thì làm mãi không bao giờ hiểu. Còn nếu đã hiểu thì không cần thêm biến sau next đọc cũng sẽ tự hiểu thôi.
 
Upvote 0
Xin cảm ơn mọi người đã nhiệt tình vào giúp đỡ. Em đã hiểu ra vấn đề rồi ạ.
 
Upvote 0
Để chắc như bắp, ta nên làm thế này:

Sau khi viết dòng lệnh
For J=1 to 9

Ta nên xuống hàng & viết ngay dòng lệnh

Next J

Sau đó chèn vài dòng trống vô giữa 2 dòng lệnh này & viết vô các dòng trống những dòng lệnh để thực hiện trong vòng lặp cụ thể đó;

Cũng vậy, nếu ta xài câu lệnh

If A = B Then

Ta nên thêm ngay dòng dưới là

End If

. . . . .

(& tuổi càng cao càng nên làm vậy; Tuy có chậm hơn mấy em trẻ nhưng chắc tin hơn)
Rất khoa học ..........chắc hơn Bắp........--=0--=0--=0
 
Upvote 0
sao bạn khuongvietphong hỏi 1 câu là có câu trả lời tới tấp nhỉ ? ngưỡng mộ ghê . chả bù với mình lúc trước hỏi 1 câu đợi cả tháng chưa ai thèm ngó . hu hu
 
Upvote 0
Các Bạn Xôm tụ vui quá ta............Nếu tập chung lại làm vài xị chắc vui lắm nhỉ......--=0--=0--=0
 
Upvote 0
Mọi người ơi, em lại gặp phải vấn đề này ạ. Em đang làm quen với vòng lặp nhưng khi viết lại quên mất không đặt đk cho vòng lặp để thoát khỏi nó. Bây giờ em không biết làm thế nào để thoát khỏi vòng lặp này. Xin mọi người giúp đỡ em với ạ.
Capture.PNG
Thế này đây ạ. Bấm vào đâu thì m cũng vẫn tăng lên. Làm thế nào để tắt hộp này đi đc ạ. Em xin lỗi vì câu hỏi này không đúng với chủ đề, mong addmin bỏ quá.
 
Upvote 0
Mọi người ơi, em lại gặp phải vấn đề này ạ. Em đang làm quen với vòng lặp nhưng khi viết lại quên mất không đặt đk cho vòng lặp để thoát khỏi nó. Bây giờ em không biết làm thế nào để thoát khỏi vòng lặp này. Xin mọi người giúp đỡ em với ạ.
View attachment 145747
Thế này đây ạ. Bấm vào đâu thì m cũng vẫn tăng lên. Làm thế nào để tắt hộp này đi đc ạ. Em xin lỗi vì câu hỏi này không đúng với chủ đề, mong addmin bỏ quá.
úp khúc code đó lên mới biết được chứ
 
Upvote 0
Mọi người ơi, em lại gặp phải vấn đề này ạ. Em đang làm quen với vòng lặp nhưng khi viết lại quên mất không đặt đk cho vòng lặp để thoát khỏi nó. Bây giờ em không biết làm thế nào để thoát khỏi vòng lặp này. Xin mọi người giúp đỡ em với ạ.
View attachment 145747
Thế này đây ạ. Bấm vào đâu thì m cũng vẫn tăng lên. Làm thế nào để tắt hộp này đi đc ạ. Em xin lỗi vì câu hỏi này không đúng với chủ đề, mong addmin bỏ quá.
Tổ hợp phím CTR+PAUSE
 
Upvote 0
Mọi người ơi, em lại gặp phải vấn đề này ạ. Em đang làm quen với vòng lặp nhưng khi viết lại quên mất không đặt đk cho vòng lặp để thoát khỏi nó. Bây giờ em không biết làm thế nào để thoát khỏi vòng lặp này. Xin mọi người giúp đỡ em với ạ.
View attachment 145747
Thế này đây ạ. Bấm vào đâu thì m cũng vẫn tăng lên. Làm thế nào để tắt hộp này đi đc ạ. Em xin lỗi vì câu hỏi này không đúng với chủ đề, mong addmin bỏ quá.
Bấm tỏ hợp phím CTR+Break
 
Upvote 0
Mọi người ơi, em lại gặp phải vấn đề này ạ. Em đang làm quen với vòng lặp nhưng khi viết lại quên mất không đặt đk cho vòng lặp để thoát khỏi nó. Bây giờ em không biết làm thế nào để thoát khỏi vòng lặp này. Xin mọi người giúp đỡ em với ạ.
View attachment 145747
Thế này đây ạ. Bấm vào đâu thì m cũng vẫn tăng lên. Làm thế nào để tắt hộp này đi đc ạ. Em xin lỗi vì câu hỏi này không đúng với chủ đề, mong addmin bỏ quá.

ctrl Break
không được nữa thì
Ctrl Alt Del
================
ủa mọi ngườ tra lờ hết rồi......hheheheheh
thui bỏ đi.............ặc....ặc
 
Upvote 0
úp khúc code đó lên mới biết được chứ

Nguyên văn là nó thế này : Sub VD_Do()


m = 1 Do
m = m + 2
MsgBox m
If m >10 Then Exit Do
Loop
End Sub

Nhưng do em táy máy đi thay đk m>10 thành m=10 xem nó có báo lỗi gì không.... thế là giờ thành ra thế này đây ạ.
 
Upvote 0
Nguyên văn là nó thế này : Sub VD_Do()


m = 1 Do
m = m + 2
MsgBox m
If m >10 Then Exit Do
Loop
End Sub

Nhưng do em táy máy đi thay đk m>10 thành m=10 xem nó có báo lỗi gì không.... thế là giờ thành ra thế này đây ạ.
Bình thường mà....đến 11 là thoát Do
PHP:
Sub mm()
    m = 1
    Do
        m = m + 2
        MsgBox m
        If m > 10 Then Exit Do
    Loop
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Bình thường mà
PHP:
Sub mm()
    m = 1
    Do
        m = m + 2
        MsgBox m
        If m > 10 Then Exit Do
    Loop
End Sub
Người ta có ghi thêm 1 dòng cuối dưới đoạn code đó mà anh KieuManh đẹp trai!}}}}}}}}}}}}}}}
Mã:
[I]Nhưng do em táy máy đi thay đk m>10 thành m=10 xem nó có báo lỗi gì không.... thế là giờ thành ra thế này đây ạ.[/I]
 
Upvote 0
Nguyên văn là nó thế này : Sub VD_Do()


m = 1 Do
m = m + 2
MsgBox m
If m >10 Then Exit Do
Loop
End Sub

Nhưng do em táy máy đi thay đk m>10 thành m=10 xem nó có báo lỗi gì không.... thế là giờ thành ra thế này đây ạ.

Phìm Break em không nhìn thấy trên bàn phím đau cả. CTRL+PAUSE đã thử và không ăn thua..Phải dùng tới Task Manager mới tắt đc nó đi đấy ạ. Em cảm ơn mọi người.
 
Upvote 0
sao bạn khuongvietphong hỏi 1 câu là có câu trả lời tới tấp nhỉ ? ngưỡng mộ ghê . chả bù với mình lúc trước hỏi 1 câu đợi cả tháng chưa ai thèm ngó . hu hu
Anh ơi, tại thấy em còn kém quá nên mọi người nhiệt tình giúp đỡ đấy thôi.
 
Upvote 0
Nguyên văn là nó thế này : Sub VD_Do()


m = 1 Do
m = m + 2
MsgBox m
If m >10 Then Exit Do
Loop
End Sub

Nhưng do em táy máy đi thay đk m>10 thành m=10 xem nó có báo lỗi gì không.... thế là giờ thành ra thế này đây ạ.

Cách để tắt "cưỡng bức" thì mọi người đã nói rồi. Tuy nhiên chỉ xin góp thêm kinh nghiệm: Sau này đừng bao giờ so sánh = trong VBA. Hoặc là >=, hoặc là <= chứ mà cứ "pằng.. pằng" là có ngày đi tong
(mình tưởng "pằng" mà bác Bill không thấy vậy)
 
Upvote 0

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

Back
Top Bottom