Code chọn khối thoả 2 điều kiện (2 người xem)

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

AnhThu-1976

Thành viên tích cực
Tham gia
17/10/14
Bài viết
1,084
Được thích
179
Em nhờ các Thầy, cô, anh chị giúp em trường hợp sau
Em cũng đã Record Macro, nhưng chưa biết sửa sao cho đúng

Trong file của em bắt đầu từ dòng thứ 9 trở xuống
Em sẽ chọn 1 khối ô, thoả điều kiện sau:
* Chỉ chọn duy nhất 1 dòng (một dòng bất kỳ)
* Cố định từ cột B đến cột G (tổng cộng 6 ô)

Nếu em chọn đúng 2 điều kiện trên thì tiếp tục cho code chạy (em sẽ bổ sung phía dưới)
Nếu em chọn sai thì Thông báo "Bạn đã chọn sai" và thoát code
Em cảm ơn nhiều!
 

File đính kèm

Bạn thử con macro này do Copilot giúp:
PHP:
Sub CheckSelectionAndRunHello()
    Dim rng As Range
 
    ' Lấy vùng chọn hiện tại   '
    Set rng = Selection
 
    ' Kiểm tra: chỉ chọn duy nhất 1 dòng, từ cột B đến G   '
    If rng.Rows.Count = 1 And rng.Columns.Count = 6 Then
        If rng.Column = 2 And rng.Columns(rng.Columns.Count).Column = 7 Then
            ' Kiểm tra dòng bắt đầu từ dòng 9 trở xuống   '
            If rng.Row >= 9 Then
                ' Nếu thỏa yêu cầu thì gọi macro Hello   '
                Call Hello
            Else
                MsgBox "Bạn phải chọn từ dòng 9 trở xuống!", vbExclamation
            End If
        Else
            MsgBox "Bạn phải chọn đúng từ cột B đến G!", vbExclamation
        End If
    Else
        MsgBox "Bạn chỉ được chọn duy nhất 1 dòng với 6 ô từ B đến G!", vbExclamation
    End If
End Sub

Code có thể rút gọn như sau
Mã:
Sub CheckSelectionAndRunHello()
    Dim rng As Range, STRC As String
    Set rng = Selection
   
    If rng.Rows.Count = 1 And rng.Columns.Count = 6 _
       And rng.Column = 2 And rng.Columns(6).Column = 7 _
             And rng.Row >= 9 Then
                    Hello
    Else
        Select Case True
            Case rng.Rows.Count <> 1 Or rng.Columns.Count <> 6
                STRC = "Chọn duy nhất 1 dòng với 6 ô từ B đến G!"
            Case rng.Column <> 2 Or rng.Columns(6).Column <> 7
                STRC = "Phải chọn đúng từ cột B đến G!"
            Case rng.Row < 9
                STRC = "Phải chọn từ dòng 9 trở xuống!"
        End Select
        MsgBox STRC, vbExclamation
    End If
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0

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

Back
Top Bottom