返回列表 上一主題 發帖

[發問] 改善大筆資料處理

本帖最後由 Hsieh 於 2014-1-22 16:43 編輯

回復 1# li_hsien
  1. Sub ex()
  2. Dim Ar
  3. Set d = CreateObject("Scripting.Dictionary")
  4. With Sheets("產品管控清單")
  5. Ar = .UsedRange.Value
  6. For i = 2 To UBound(Ar, 1) '記錄產品不重覆記錄
  7.    d(Ar(i, 10)) = Array(Ar(i, 5), Ar(i, 6), Ar(i, 7), Ar(i, 8), Ar(i, 9), Ar(i, 10), Ar(i, 3), Ar(i, 1), Ar(i, 2))
  8. Next
  9. End With
  10. With Sheets("物料管控清單")
  11. Ar = .UsedRange.Value
  12. For i = 2 To UBound(Ar, 1)
  13.    If d.exists(Ar(i, 6)) Then
  14.      .Cells(i, 1).Resize(, 9) = d(Ar(i, 6)) '產品出現在物料則更新為產品資料
  15.       d.Remove Ar(i, 6) '移除已寫入的資料
  16.    End If
  17. Next
  18. '若產品未出現於物料,則新增至物料資料尾
  19. If d.Count > 0 Then .Cells(.Rows.Count, 1).End(xlUp).Offset(1).Resize(d.Count, 9) = Application.Transpose(Application.Transpose(d.items))
  20. End With
  21. End Sub
複製代碼
forum01.22.zip (126.27 KB)
學海無涯_不恥下問

TOP

回復 14# li_hsien
模式一樣是以"產品"為主
如果
"產品"有   "物料"有  則把"產品"  放到  "物料" 原有的位置
"產品"無   "物料"有  則把"物料" 那筆整欄刪掉
"產品"有   "物料"無  則把新增出來的那筆"產品"資訊 新增到"物料"的最下方

這樣不就只是把產品刪除重覆的結果而已嗎?
學海無涯_不恥下問

TOP

        靜思自在 : 要用心,不要操心、煩心。
返回列表 上一主題