Phát sinh ( Việc dừng vòng lặp theo ý định ), Nhờ các thày hướng dẫn

Liên hệ QC

thanglt90

Thành viên mới
Tham gia
27/6/07
Bài viết
28
Được thích
13
Hi..!Theo hướng dẫn lập trình Vòng Lặp của các thày, em đã ứng dụng được và có pháp triển từ 1 vòng lên 3 vòng.Xong bài toán phát sinh đặt ra yêu cầu mới.Phát sinh ( Việc dừng vòng lặp theo ý định ), Mỗi khi em muốn dừng vòng lặp để ghi nhận 1 Kết quả, thì máy báo lỗi.Nhờ thày giúp chúng em dừng vòng lặp theo ý định của bài toán thày nhé.( Gửi kèm bài tập Bai_Tap2.xls )Cám ơn các thày hương dẫn./
 

File đính kèm

Ô K4 điền công thức: =mod(D4,E4)
Bạn khai báo biến i dạng integer, cho giá trị i = 6 (là số hàng đầu tiên mà muốn ghi các record thoả yêu cầu
Thêm vào vòng lặp thứ 3 đoạn code sau:
PHP:
If [k4] = 1 Then
            Cells(i, 11) = [c4]
            Cells(i, 12) = [d4]
            Cells(i, 13) = [e4]
            i = i + 1
 End If
 
Upvote 0
Bạn thử sửa lại macro của bạn như vầy xem sao:

Trước tiên gán vô [K4] công thức =IF(D4/E4=INT(D4/E4),0,1)
& chạy macro sau:
PHP:
Option Explicit
Sub NapSo()
 Dim Cls As Range, Cls02 As Range, Cls03 As Range
 Dim Timer02 As Double, Timer_ As Double, Timer03 As Double

 [M2].CurrentRegion.ClearContents
 For Each Cls In Range([c7], [c7].End(xlDown))
   With [c4]
      .Value = Cls.Value
      .Interior.ColorIndex = 34 + .Value Mod 9
   End With
   For Each Cls02 In Range([D7], [D7].End(xlDown))
      With [D4]
         .Value = Cls02.Value
         .Interior.ColorIndex = 34 + .Value Mod 9
      End With
      Timer03 = Timer
      For Each Cls03 In Range([E7], [E7].End(xlDown))
         With [E4]
            .Value = Cls03.Value
            .Interior.ColorIndex = 34 + .Value Mod 9
         End With
         If [K4].Value = 1 Then
            [M65500].End(xlUp).Offset(1).Resize(, 3).Value = [c4].Resize(, 3).Value
         End If
         Do
            If Timer - Timer03 > 0.05 Then
                Timer03 = Timer
                Exit Do
            End If
        Loop
      Next Cls03
   Next Cls02
 Next Cls
End Sub
 
Upvote 0
Hi..!
Vui quá Thày đã giúp em nhiều quá, Em chạy thử chương trình rồi ( Rất Hiệu Quả )
Cám ơn các thày rất nhiều ( Không biết lấy gì mà Hậu Tạ đây ), Hy vọng thày cảm thông.
Em có hỏi thêm một chút trong đoạn mã trên em chưa hiểu nó là gì :
[M65500].End(xlUp).Offset(1).Resize(, 3).Value = [c4].Resize(, 3).Value

C
ụ thể là [M65500].End(xlUp) là gì ; Em có thể em muốn thay địa chỉ kết suất ra bộ số liệu thì làm sao , hay là thay [M60023]
Thày chỉ giúp em nhé ./. Thank
 
Upvote 0
[M65500].End(xlUp).Offset(1).Resize(, 3).Value = [c4].Resize(, 3).Value

Thay vì dùng 65500 ta nên dùng 65535 ( hay số dòng có được trong 1 trang tính);

End(x) là 1 fương thức dùng để di chuyển con trỏ chuột theo chiều tùy thuộc vô tham số x

Ở đây xlUp là chiều từ dưới lên trên;

Hiểu nôm na câu lệnh [M65500].End(xlUp) là chọn ô [M65500] (thường là ô trống) & bấm tổ hợp fím
{CTRL}+ mũi tên lên;
Lúc đó ta sẽ được đưa đến ô cuối cùng của cột 'M' có chứa dữ liệu;

Sau đó dùng fương thức .Offset(1) là ta chọn xuống dưới ô chứa dữ liệu này 1 ô; Tạm hiều là đến ô trống đầu tiên dưới ô có dữ liệu của cột 'M';

Tiếp theo là fương thức Resize(x,y) - Đây là fương thức mở rọng vùng chọn & x là số dòng mở rọng, nếu x bị bò qua, có nghĩa x=0; & y là số cột được mở rọng;

Như vậy ta thấy vùng chọn sẽ là 3 ô, mà ô đầu tiên là ô trống không dữ liệu đầu tiên của cột 'M' sau ô cuối của cột này có dữ liệu & 2 ô mở rọng là 2 ô bên fải liền kề với ô đầu của vùng chọn.

Fần tiếp theo của câu lệnh được hiểu là: Trị của ba ô này được gán từ 3 ô bắt đầu từ [C4] mở rọng về fía fải thêm 2 ô nữa.

Các fương thức này đều có trên diễn đàn & được mô tả kỹ lưỡng rồi, Bạn hãy nghiền ngẫm chúng lúc rỗi!

Cần fải nói thêm rằng, vô đầu chương trình ta có dòng lệnh
Mã:
[COLOR=#000000][COLOR=#007700][[/COLOR][COLOR=#0000BB]M2[/COLOR][COLOR=#007700]].[/COLOR][COLOR=#0000BB]CurrentRegion[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]ClearContents[/COLOR][/COLOR]

Dùng lệnh này dùng để xóa toàn bộ dữ liệu có từ lần chạy trước với các ô liền kề với [B2] (& xóa dữ liệu cả của nó)




 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom