Hỗ trợ chèn dòng trống - điền thêm thông tin

Liên hệ QC

Nguyenhoangphong0902

Đường trần muôn vạn ngã ba.........
Tham gia
27/7/21
Bài viết
56
Được thích
22
Chào anh chị, em có bài tập thực tế trong công việc như file:
Yêu cầu: 2 yêu cầu.
1_ Chèn dòng trống dựa vào cột A (mã SP) . Chạy từ dưới lên trên. Cứ mã dưới khác mã trên thì insert 1 dòng.
2_ Điền thông tin như file kết quả mong muốn.
Bài này em mong muốn có được 2 code riêng lẻ: 1 code chèn dòng trống và 1 code điền thông tin. Vì em còn ứng dụng nhiều thứ trong công việc.
Em cảm ơn các anh chị.
 

File đính kèm

  • Chèn dòng trống -GPE.xlsb
    10.4 KB · Đọc: 10
  • GPE.JPG
    GPE.JPG
    83.6 KB · Đọc: 26
PHP:
Sub ThemDongRongVaDuLieuVoChung()
 Dim Rws As Long, J As Long, I_Tem As Integer, MyColor As Integer
 Dim Mã As String
 
 With Sheets("Data")
    Rws = [B2].CurrentRegion.Rows.Count:    Randomize
    Mã = .Cells(2, "A").Value:              MyColor = 34 + 9 * Rnd() \ 1
    For J = 2 To 2 * Rws
        If Mã = .Cells(J, "A").Value Then
            I_Tem = CInt(.Cells(J, "C").Value)
        Else
            Rows(J & ":" & J).Select
            Selection.Insert Shift:=xlDown
            .Cells(J, "A").Value = Mã
            .Cells(J, "C").Value = "'" & Right("000" & CStr(I_Tem + 10), 4)
            .Cells(J, "D").Value = "THÔNG TIN BÔ SUNG"
            Mã = .Cells(J + 1, "A").Value
            .Cells(J, 1).Resize(, 4).Interior.ColorIndex = MyColor
            J = J + 1
        End If
        If .Cells(J, "C").Value = "" Then
            Exit For
        End If
    Next J
 End With
End Sub
 
Upvote 0
PHP:
Sub ThemDongRongVaDuLieuVoChung()
 Dim Rws As Long, J As Long, I_Tem As Integer, MyColor As Integer
 Dim Mã As String
 
 With Sheets("Data")
    Rws = [B2].CurrentRegion.Rows.Count:    Randomize
    Mã = .Cells(2, "A").Value:              MyColor = 34 + 9 * Rnd() \ 1
    For J = 2 To 2 * Rws
        If Mã = .Cells(J, "A").Value Then
            I_Tem = CInt(.Cells(J, "C").Value)
        Else
            Rows(J & ":" & J).Select
            Selection.Insert Shift:=xlDown
            .Cells(J, "A").Value = Mã
            .Cells(J, "C").Value = "'" & Right("000" & CStr(I_Tem + 10), 4)
            .Cells(J, "D").Value = "THÔNG TIN BÔ SUNG"
            Mã = .Cells(J + 1, "A").Value
            .Cells(J, 1).Resize(, 4).Interior.ColorIndex = MyColor
            J = J + 1
        End If
        If .Cells(J, "C").Value = "" Then
            Exit For
        End If
    Next J
 End With
End Sub
Dạ, em đã làm được. Em cảm ơn bác rất nhiều.
 
Upvote 0

File đính kèm

  • Chèn dòng trống -GPE.rar
    28.7 KB · Đọc: 13
Lần chỉnh sửa cuối:
Upvote 0
Code này em thấy có vẻ ok hơn code hồi sáng. Do viết bằng mảng, code hồi sáng em chạy 6 ngàn dòng thấy hơi chậm. Mà bình thường lúc em làm thường là 50 ngàn dòng đến hơn 100 ngàn dòng. Và thật ra cái vụ tô màu là em làm cho nó nổi bật thôi. Chứ không có ý định tô màu, .........
Ở bài đầu đâu đã nêu là mấy vạn dòng gì đâu(!)

Run lần nữa là run luôn á --=0
Muốn 'Run' liên tiếp nhiều cái thì thêm động tác kiểm tra ô trống ở cột 'B', nếu có trống thì thôi, đợi đến lúc khác,. . . . .
 
Upvote 0
Ở bài đầu đâu đã nêu là mấy vạn dòng gì đâu(!)


Muốn 'Run' liên tiếp nhiều cái thì thêm động tác kiểm tra ô trống ở cột 'B', nếu có trống thì thôi, đợi đến lúc khác,. . . . .
Dạ, do em không nói lúc đầu bao nhiêu dòng, lỗi của em ạ. Nhưng code anh có cái hay là chạy lần 1: thì ra được thông tin bổ sung 1. Chạy lần 2 ra được thông tin bổ sung 2, chạy lần 3, ra được thông tin bổ sung 3. Nói chung code nào cũng hay.
 
Upvote 0
Ở bài đầu đâu đã nêu là mấy vạn dòng gì đâu(!)
...
Ở GPE bao nhiêu năm rồi mà còn bỡ ngỡ với mức độ nhỏng nhẻo của dân vòi code à?
Người ta nói như thế này:
"dạ được bác, chạy kiểu gì cũng được" (bài #3) khi chưa có gì hết, còn phải năn nỉ.
Sau khi có code rồi, và sau khi biết có trên 1 người sẵn sàng viết rồi thì thêm những yêu cầu ỏng ẹo.

(tôi thì chả thể nghĩ ra có "bài tập thực tế" [sic] mà mỗi ngày phải làm cả chục file, mỗi file hằng trăm ngàn dòng đẻ opahir cần code chạy nhanh. Đối với tôi, "bài tập" ấy người thiết kế đã không có sự thực tế ngay từ đầu)

Muốn 'Run' liên tiếp nhiều cái thì thêm động tác kiểm tra ô trống ở cột 'B', nếu có trống thì thôi, đợi đến lúc khác,. . . . .
Từ "run" ở bài #7 là tiếng lóng mà bạn :p
Bạn tự tìm hiểu lấy chứ tôi không thể nói thêm đâu. Tôi đang mang danh là thành hần bất hảo, mật vụ mụ vật nó chực tôi nói hở hang là túm cổ đày đi côn đảo 1 tháng.
 
Upvote 0
Web KT
Back
Top Bottom