Code ẩn dòng theo điều kiện bị lỗi, nhờ các bạn sửa giúp.

Liên hệ QC

lebanhat195

Thành viên mới
Tham gia
22/10/09
Bài viết
2
Được thích
0
Mình mới tìm hiểu VBA, đang cần làm một đoạn code ẩn dòng khi thay đổi giá trị ở ô C2, mình tìm hiểu trên mạng làm đoạn code sau nhưng bị lỗi không chạy được. Mong các bạn chỉ giúp mình. Xin cảm ơn.
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim i As Integer
    If Target.Address = "$C$2" Then
        For i = 116 To 143
            If Cells(i, 3) <> 0 Then
                Rows("116:143").Hidden = True
                Rows(i).Hidden = False
                Exit For
            End If
        Next
    End If
End Sub
 
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim i As Integer
1    If Target.Address = "$C$2" Then
        For i = 116 To 143
 3           If Cells(i, 3) <> 0 Then
                Rows("116:143").Hidden = True
5                Rows(i).Hidden = False
                Exit For
7            End If
        Next
9    End If
End Sub
Mình dịch sang tiếng Việt các câu lệnh của bạn bạn có thể chiêm nghiệm xem có đúng í đồ của bạn không nha:

Trước câu lệnh mang số 1: Khai báo 1 tham biến I kiểu Integer (để xài trong chương trình)
D1: Điều kiện: Nếu (ta tác động)làm thay đổi tri trong ô [C2] thì thực hiện các cau lệnh trước D9
D2: Thiết lập vòng lặp cho tham biến I chạy từ 116 tới 143
Vòng lặp này kết thúc dứt khoát ở D8
D3: Điều kiện: Nếu (giá) trị chứa trong ô có chỉ số dòng bằng với I (đang duyệt) & chỉ số cột là 3 mà khác 0 thì thực hiện các câu lệnh trước D7
D4: Cho ẩn các dòng từ 116 cho tới 143
D5: Cho hiện dòng đang duyệt (I)
D6: Thoát (cưỡng bức) vòng lặp

Rốt cuộc: đoạn mã lệnh này sẽ thực hiện chuyện duyệt các trị trong cột 'C' từ dòng 116 cho tới 143
Hễ (trong khi duyệt) mà gặp ô đang duyệt có trị >< 0 thì làm 3 việc sau:
1: Cho ẩn toàn bộ các dòng trong vùng
2: Cho hiện dòng đang duyệt
3 Thoát khỏi vòng lặp

Những mong là giúp bạn ít nhiều & chúc vui!
 
Upvote 0
Mình dịch sang tiếng Việt các câu lệnh của bạn bạn có thể chiêm nghiệm xem có đúng í đồ của bạn không nha:

Trước câu lệnh mang số 1: Khai báo 1 tham biến I kiểu Integer (để xài trong chương trình)
D1: Điều kiện: Nếu (ta tác động)làm thay đổi tri trong ô [C2] thì thực hiện các cau lệnh trước D9
D2: Thiết lập vòng lặp cho tham biến I chạy từ 116 tới 143
Vòng lặp này kết thúc dứt khoát ở D8
D3: Điều kiện: Nếu (giá) trị chứa trong ô có chỉ số dòng bằng với I (đang duyệt) & chỉ số cột là 3 mà khác 0 thì thực hiện các câu lệnh trước D7
D4: Cho ẩn các dòng từ 116 cho tới 143
D5: Cho hiện dòng đang duyệt (I)
D6: Thoát (cưỡng bức) vòng lặp

Rốt cuộc: đoạn mã lệnh này sẽ thực hiện chuyện duyệt các trị trong cột 'C' từ dòng 116 cho tới 143
Hễ (trong khi duyệt) mà gặp ô đang duyệt có trị >< 0 thì làm 3 việc sau:
1: Cho ẩn toàn bộ các dòng trong vùng
2: Cho hiện dòng đang duyệt
3 Thoát khỏi vòng lặp

Những mong là giúp bạn ít nhiều & chúc vui!
Cảm ơn bạn đã trả lời mình, đúng là ý đồ của mình như vậy, nhưng mình cho vào file của mình nó không chạy. Mình ko biết là trong đoạn code trên mình có viết sai lỗi chỗ chỗ nào không.
 
Upvote 0
Có thể nó vẫn chạy, nhưng bạn không thấy (kịp) nó chạy như thế nào!
Muốn thấy, bạn chạy macro này xem sao:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim i As Integer
    If Target.Address = "$C$2" Then
3        Rows("116:143").Hidden = False
4        MsgBox "GPE.COM"
        For i = 116 To 143
            If Cells(i, 3) <> 0 Then
                Rows("116:143").Hidden = True
                Rows(i).Hidden = False
                Exit For
            End If
        Next
    End If
End Sub
 
Upvote 0
Web KT

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

Back
Top Bottom