Nguyễn Hoàng Quốc Nam
Nguyễn Hoàng Quốc Nam
Thảo luận 2 thảo luận
Vỗ tay 0 vỗ tay
Lượt xem 239 lượt xem

Tôi dùng vòng lặp For Each Next kết hợp với If Then để làm nhưng không

Tôi dùng  vòng lặp For Each  Next  kết hợp với  If Then  để làm nhưng không được, nhờ các thầy giứp dùng

https://drive.google.com/file/d/1npLl...


Thảo luận 2 câu trả lời
Lượt xem 239 lượt xem
Vỗ tay vỗ tay
Nguyễn Hoàng Quốc Nam 14:11 - Nov 16, 2021

Bạn tham khảo đoạn code dưới đây nhé:

Sub insert_row()
    Dim lr As Long
    Dim i As Long
    lr = Sheets("nam").Range("C" & Rows.Count).End(xlUp).Row
    For i = 8 To lr * 2
        If Range("A" & i).Value <> "" Then
        Rows(i & ":" & i).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        i = i + 1
        End If
    Next i
End Sub

Trong đó quy trình là:

- Bước 1: xác định dòng cuối có dữ liệu trong bảng. Dựa theo cột C là cột có dữ liệu liên tục => biến lr đại diện cho dòng cuối

- Bước 2: vòng lặp bạn sẽ tính dừ dòng đầu + 1 (là dòng 8) đến dòng cuối * 2 vì:

+ dòng đầu tiên luôn có dữ liệu, nếu xét từ dòng này sẽ chèn dòng trống trước cột đầu tiên => không đúng. 

+ nếu chỉ xét tới dòng cuối thì khi chèn thêm dòng trống => nội dung bị vượt quá vị trí dòng cuối ban đầu => có thể thiếu các dòng này => lấy giá trị dòng cuối * 2 để đảm bảo trường hợp bảng tính có thể tăng gấp 2 lần số dòng so với ban đầu (là tối đa)

- Bước 3: xét logic nếu dòng ở cột A không phải là dòng trống thì thực hiện lệnh chèn dòng. Nhưng chú ý là chèn xong thì vị trí dòng đang có dữ liệu bị đẩy xuống 1 dòng => phải nhảy qua dòng này thì mới xét các dòng tiếp theo được => đặt  i = i + 1 để cho phép vượt qua điểm này.

Khi đó Next i sẽ tính là i + 2 (vì next trong vòng lặp đã là +1 rồi. vòng lặp không xét tới step là bao nhiêu thì được hiểu step = 1)

Bạn có thể chạy thử vòng lặp này và kiểm tra qua thao tác nhấn phím F8 để rõ hơn cách thức vòng lặp hoạt động nhé.

Vỗ tay vỗ tay
Nguyễn Hoàng Quốc Nam 21:11 - Nov 17, 2021

Cám ơn chuyên gia rất  nhiều

Vỗ tay vỗ tay
Câu hỏi liên quan
© 2020 - Bản quyền của Công Ty Cổ Phần Công Nghệ Giáo Dục Gitiho Việt Nam
Giấy chứng nhận Đăng ký doanh nghiệp số: 0109077145, cấp bởi Sở Kế hoạch và Đầu tư TP. Hà Nội
Giấy phép mạng xã hội số: 588, cấp bởi Bộ Thông tin và Truyền thông