標題:
增加重復資料筆數
[打印本頁]
作者:
d8722468
時間:
2015-9-23 16:32
標題:
增加重復資料筆數
請教各位大大
在資料中有這三個欄位,
已知數量這個欄為"數值"
如何依"數量"這位欄位為準,產生多筆資料
請問如何用vba程式寫出
原資料 如下表
品號 批號 數量
aaaaa bbbbb 3----->變成3筆數量為1的data
aaaaa1 bbbbb1 2----->變成2筆數量為1的data
想要的結果
品號 批號 數量
aaaaa bbbbb 1
aaaaa bbbbb 1
aaaaa bbbbb 1
aaaaa1 bbbbb1 1
aaaaa1 bbbbb1 1
作者:
d8722468
時間:
2015-9-23 16:37
作者:
lpk187
時間:
2015-9-23 17:46
回復
2#
d8722468
Sub ex()
Dim rng As Range
For Each rng In Range("C2:c9")
If rng = "" Then Exit Sub
For i = 1 To rng.Value
ro = Cells(Rows.Count, 1).End(xlUp).Row + 1
Cells(ro, 1) = rng.Offset(, -2)
Cells(ro, 2) = rng.Offset(, -1)
Cells(ro, 3) = 1
Next
Next
End Sub
複製代碼
作者:
d8722468
時間:
2015-9-23 17:58
感謝lpk187 大大~~小弟測試成功
再請教一下
那原資料可否刪除只留下新的DATA
品號 批號 數量
aaaaa bbbbb 3----->變成3筆數量為1的data
aaaaa1 bbbbb1 2----->變成2筆數量為1的data
跑完程式後只留下這樣的結果
品號 批號 數量
aaaaa bbbbb 1
aaaaa bbbbb 1
aaaaa bbbbb 1
aaaaa1 bbbbb1 1
aaaaa1 bbbbb1 1
作者:
lpk187
時間:
2015-9-23 18:33
回復
4#
d8722468
Sub ex()
Dim rng As Range
Dim arr()
For Each rng In Range("C2:c9")
If rng = "" Then GoTo 99
For i = 1 To rng.Value
x = x + 1
ReDim Preserve arr(1 To 3, 1 To x)
arr(1, x) = rng.Offset(, -2)
arr(2, x) = rng.Offset(, -1)
arr(3, x) = 1
Next
Next
99:
[A2].Resize(UBound(arr, 2), 3) = Application.WorksheetFunction.Transpose(arr)
End Sub
複製代碼
作者:
d8722468
時間:
2015-9-23 18:45
非常感謝lpk187 大大~~
解決了小弟困難!!!
非常感謝!!!
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)