Sao chép dữ liệu trong ô theo số lượng

Liên hệ QC

Nguyễn Hồng Lam

Thành viên hoạt động
Tham gia
7/12/17
Bài viết
131
Được thích
35
Chào mọi người, bây giờ mình cần thực hiện sao chép các mặt hàng trong nội dung "Mặt hàng bán" theo "Số lượng đại lý đặt mua" như hình và file ví dụ. Mọi người giúp mình với nhé:

1592382619540.png
 

File đính kèm

"Sao chép" là sao nhỉ? Nhìn hình có vẻ như là đếm và có thể dùng hàm Countif.
 
Giải trí một chút
PHP:
Sub test()
Dim i As Long, ii As Long, maxR As Long, k As Long
Dim a, b
a = Sheet1.Range("A1").CurrentRegion.Value
maxR = Application.Sum(Sheet1.Range("D:D"))
ReDim b(1 To maxR, 1 To 8)
For i = 2 To UBound(a, 1)
    For ii = 1 To a(i, 4)
        k = k + 1
        b(k, 1) = ii
        b(k, 2) = a(i, 2)
    Next ii
Next i
If k > 0 Then
    With Sheet1.Range("H2").Resize(k, 8)
        .Value = b
        .Borders.LineStyle = 1
    End With
End If

End Sub
 
Mã:
Sub CreateTable()
Dim aData As Variant, aResult() As Variant, lTotal As Long, i As Long, j As Long, n As Long
With Sheet1.Range("B2:D" & Sheet1.Cells(&H100000, 4).End(xlUp).Row)
    aData = .Value
    lTotal = Application.Sum(.Columns(3))
End With
ReDim aResult(1 To lTotal, 1 To 2)
For i = 1 To UBound(aData, 1)
    For j = 1 To aData(i, 3)
        n = n + 1
        aResult(n, 1) = j
        aResult(n, 2) = aData(i, 1)
    Next
Next
Sheet1.Range("H2:O" & Sheet1.Cells(&H100000, 8).End(xlUp).Row).Clear
Sheet1.Range("H2").Resize(lTotal, 2).Value = aResult
Sheet1.Range("H2").Resize(lTotal, 8).Borders.LineStyle = xlContinuous
End Sub
 
Mã:
Sub CreateTable()
Dim aData As Variant, aResult() As Variant, lTotal As Long, i As Long, j As Long, n As Long
With Sheet1.Range("B2:D" & Sheet1.Cells(&H100000, 4).End(xlUp).Row)
    aData = .Value
    lTotal = Application.Sum(.Columns(3))
End With
ReDim aResult(1 To lTotal, 1 To 2)
For i = 1 To UBound(aData, 1)
    For j = 1 To aData(i, 3)
        n = n + 1
        aResult(n, 1) = j
        aResult(n, 2) = aData(i, 1)
    Next
Next
Sheet1.Range("H2:O" & Sheet1.Cells(&H100000, 8).End(xlUp).Row).Clear
Sheet1.Range("H2").Resize(lTotal, 2).Value = aResult
Sheet1.Range("H2").Resize(lTotal, 8).Borders.LineStyle = xlContinuous
End Sub
Mình copy rồi nhưng add-in vào chẳng chạy được. Tới đây rồi làm sao nữa vậy bạn
Bài đã được tự động gộp:

Giải trí một chút
PHP:
Sub test()
Dim i As Long, ii As Long, maxR As Long, k As Long
Dim a, b
a = Sheet1.Range("A1").CurrentRegion.Value
maxR = Application.Sum(Sheet1.Range("D:D"))
ReDim b(1 To maxR, 1 To 8)
For i = 2 To UBound(a, 1)
    For ii = 1 To a(i, 4)
        k = k + 1
        b(k, 1) = ii
        b(k, 2) = a(i, 2)
    Next ii
Next i
If k > 0 Then
    With Sheet1.Range("H2").Resize(k, 8)
        .Value = b
        .Borders.LineStyle = 1
    End With
End If

End Sub
Mình copy rồi nhưng add-in vào chẳng chạy được. Tới đây rồi làm sao nữa vậy bạn
 
Web KT

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

Back
Top Bottom