[Giúp đỡ] Nhờ anh chị sửa giúp Marco chèn dòng có điều kiện kiểm tra số lượng hàng ào (1 người xem)

  • Thread starter Thread starter quyenpv
  • Ngày gửi Ngày gửi
Liên hệ QC

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

quyenpv

Thu nhặt kiến thức
Tham gia
5/1/13
Bài viết
727
Được thích
97
Giới tính
Nam
Nghề nghiệp
Decode cuộc đời!
Mã:
Sub ChenHang()
Dim ra As Range
Set ra = Application.InputBox("HAY CHON VI TRI CELL CAN CHEN HANG ", "My Macro", Type:=8)
sohang = Application.InputBox("So hang can chen:")
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
For i = 1 To sohang
Rows(ra.Row).Insert
Next
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic


End Sub
Em tìm được code này trên diễn đàn rất tốt nhưng nó lại không có điều kiện kiểm tra số lượng dòng chèn vào. Khi số lượng mẫu test chèn vào vượt quá số dòng trên excel thì báo lỗi. Mong các anh chị giúp đỡ sửa code để hoàn thiện với ạ
Cám ơn anh chị nhiều
 

File đính kèm

Lần chỉnh sửa cuối:
Cụ thể thì số lượng mẫu test bạn đặt (khai báo) ở đâu?
Bạn gửi file lên, có thể có giải pháp.
 
Upvote 0
Mã:
Sub ChenHang()
Dim ra As Range
Set ra = Application.InputBox("HAY CHON VI TRI CELL CAN CHEN HANG ", "My Macro", Type:=8)
sohang = Application.InputBox("So hang can chen:")
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
For i = 1 To sohang
Rows(ra.Row).Insert
Next
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic


End Sub
Em tìm được code này trên diễn đàn rất tốt nhưng nó lại không có điều kiện kiểm tra số lượng dòng chèn vào. Khi số lượng mẫu test chèn vào vượt quá số dòng trên excel thì báo lỗi. Mong các anh chị giúp đỡ sửa code để hoàn thiện với ạ
Cám ơn anh chị nhiều
Bạn thử code này xem:

Mã:
Sub ChenHang()
    On Error Resume Next
    Dim ra As Range
    Dim sohang As Long
    Application.DisplayAlerts = False
LamLai:
    Set ra = Application.InputBox("HAY CHON VI TRI CELL CAN CHEN HANG ", "My Macro", Type:=8)
    If ra Is Nothing Then
        If MsgBox("BAN CO MUON CHEN DONG TIEP KHONG?", vbQuestion + vbYesNo, "THÔNG BÁO") = vbYes Then
            GoTo LamLai
        Else
            Application.DisplayAlerts = True
            Exit Sub
        End If
    End If
TiepTuc:
    sohang = Application.InputBox("So hang can chen:")
    If Err.Number Or sohang = 0 Then
        If MsgBox("BAN CO MUON CHEN DONG TIEP KHONG?", vbQuestion + vbYesNo, "THÔNG BÁO") = vbYes Then
            Err.Clear
            GoTo TiepTuc
        Else
            Application.DisplayAlerts = True
            Exit Sub
        End If
    End If
    Application.Calculation = xlCalculationManual
    Application.ScreenUpdating = False
    For i = 1 To sohang
        Rows(ra.Row).Insert
    Next
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic
End Sub
 
Upvote 0
Vâng cám ơn anh Nghĩa, đến đây em có thể tự sửa theo yêu cầu của em rồi. Thanks a
 
Upvote 0
Các anh chị giúp code chèn dòng như sau
Tại Sheet Form, tôi nhập dòng bắt đầu chèn tại ô D5 và số dòng chèn tại ô D9
Khi ta nhấp nút "chèn dòng" thì sheet TongHop sẽ được chèn dòng theo những điều kiện trên
Em cảm ơn các anh chị
-
P/S: em muốn áp dụng code của anh Nghĩa nhưng chưa áp dụng được
 

File đính kèm

Upvote 0
Các anh chị giúp code chèn dòng như sau
Tại Sheet Form, tôi nhập dòng bắt đầu chèn tại ô D5 và số dòng chèn tại ô D9
Khi ta nhấp nút "chèn dòng" thì sheet TongHop sẽ được chèn dòng theo những điều kiện trên
Em cảm ơn các anh chị
-
Nếu bạn chỉ muốn chèn thêm dòng đúng vị trí và số dòng như vậy thì thử Record Macro khi làm thủ công,
Chỉnh lại 1 chút, bạn sẽ có như vầy:
PHP:
Sub Macro1()
    Sheets("TongHop").Rows("12:16").Insert
End Sub
Thay số 12 và 16 bằng số liệu trong các ô D5 và D9, sẽ có dạng vầy:
PHP:
Sub Macro2()
Dim Rws As Long, Num As Long
    Rws = Sheets("Form").Range("D5").Value
    Num = Sheets("Form").Range("D9").Value
    Sheets("TongHop").Range(Rws & ":" & Rws + Num - 1).Insert
End Sub
 
Upvote 0
Web KT

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

Back
Top Bottom