Help! Chèn bổ sung các row giống nhau

Liên hệ QC

hvt42000

Thành viên mới
Tham gia
21/4/11
Bài viết
17
Được thích
0
K/g các pro

Nhờ anh chị xem giúp file có thể có đoạn code nào để chạy tự động bổ sung các row giống như 1.1 đến 1.10 không ah
vì số lượng nhiều mà Insert manual thì lâu quá

Tks all
 

File đính kèm

  • List_r1.xlsx
    13.9 KB · Đọc: 9
K/g các pro

Nhờ anh chị xem giúp file có thể có đoạn code nào để chạy tự động bổ sung các row giống như 1.1 đến 1.10 không ah
vì số lượng nhiều mà Insert manual thì lâu quá

Tks all
VBA thì mình chưa nghĩ ra cách đánh số thứ tự nên bạn dùng thử file bán thủ công này nhé. Hiện mình vẫn dùng cách này cho vài file của mình
 

File đính kèm

  • List_r1.xlsx
    145.3 KB · Đọc: 6
Bạn sửa tiêu đề và các từ viết tắt. Mình gửi code lên liền
 
K/g các pro

Nhờ anh chị xem giúp file có thể có đoạn code nào để chạy tự động bổ sung các row giống như 1.1 đến 1.10 không ah
vì số lượng nhiều mà Insert manual thì lâu quá

Tks all
Hên sui.
Mã:
Sub abc()
   Dim i As Long, lr As Long, arr, kq() As String, data, a As Long, j As Long
   With Sheet1
        lr = .Range("A" & Rows.Count).End(xlUp).Row + 1
        arr = .Range("A15:C" & lr).Value
        data = .Range("B5:C14").Value
        ReDim kq(1 To UBound(arr) * 12, 1 To 3)
        For i = 1 To UBound(arr) - 1
               a = a + 1
               kq(a, 1) = UCase(arr(i, 1))
               kq(a, 2) = arr(i, 2)
               kq(a, 3) = arr(i, 3)
            If Len(arr(i, 1)) > 0 And Len(arr(i + 1, 1)) > 0 Then
               For j = 1 To 10
                   a = a + 1
                   kq(a, 2) = data(j, 1)
                   kq(a, 3) = data(j, 2)
               Next j
            End If
      Next i
            If Len(arr(i - 2, 1)) > 0 Then
                For j = 1 To 10
                   a = a + 1
                   kq(a, 2) = data(j, 1)
                   kq(a, 3) = data(j, 2)
               Next j
            End If
      .Range("D15:F15").Resize(a).Value = kq
  End With
End Sub
 
Hên sui.
Mã:
Sub abc()
   Dim i As Long, lr As Long, arr, kq() As String, data, a As Long, j As Long
   With Sheet1
        lr = .Range("A" & Rows.Count).End(xlUp).Row + 1
        arr = .Range("A15:C" & lr).Value
        data = .Range("B5:C14").Value
        ReDim kq(1 To UBound(arr) * 12, 1 To 3)
        For i = 1 To UBound(arr) - 1
               a = a + 1
               kq(a, 1) = UCase(arr(i, 1))
               kq(a, 2) = arr(i, 2)
               kq(a, 3) = arr(i, 3)
            If Len(arr(i, 1)) > 0 And Len(arr(i + 1, 1)) > 0 Then
               For j = 1 To 10
                   a = a + 1
                   kq(a, 2) = data(j, 1)
                   kq(a, 3) = data(j, 2)
               Next j
            End If
      Next i
            If Len(arr(i - 2, 1)) > 0 Then
                For j = 1 To 10
                   a = a + 1
                   kq(a, 2) = data(j, 1)
                   kq(a, 3) = data(j, 2)
               Next j
            End If
      .Range("D15:F15").Resize(a).Value = kq
  End With
End Sub
Sao thấy code nó dư dư bác nhỉ?
Sao lr phải cộng thêm 1 và sao phải xét Len(arr(i + 1, 1)) > 0?
Dòng kq là UBound(arr) * 11 chứ?
Phần này có thể gộp vào phía trên mà
If Len(arr(i - 2, 1)) > 0 Then
For j = 1 To 10
a = a + 1
kq(a, 2) = data(j, 1)
kq(a, 3) = data(j, 2)
Next j
End If
 
Sao thấy code nó dư dư bác nhỉ?
Sao lr phải cộng thêm 1 và sao phải xét Len(arr(i + 1, 1)) > 0?
Dòng kq là UBound(arr) * 11 chứ?
Phần này có thể gộp vào phía trên mà
Thực ra code nó đã viết đè vào data rồi thì phải tính thêm mấy trường hợp nữa.
 
Web KT
Back
Top Bottom