返回列表 上一主題 發帖

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

回復 20# GBKEE

真的是這個錯誤耶!!!!



我以為有了On Error Resume Next就可以排除了@@

不過資料增加和刪除的部分有辦法修正嗎????

因為可能從"產品"的資訊中間新增或刪除,而不是在下方

可是現在測試的結果,如果在中間新增會有錯誤,新增不到的問題


感謝大大的發現  !!!!!!!
用功到世界末日那一天~~~

TOP

回復 21# li_hsien
試試看
9#所說: 最後結果是"產品"跟"物料"的項目數會是一樣的沒有錯
  1. Option Explicit
  2. Sub Ex()
  3.     Dim d As New Collection, AR(), i As Integer, Rng As Range ', e As Variant
  4.     On Error Resume Next              'Collection新增的KEY如被使用或有錯誤
  5.     With Worksheets("產品管控清單")
  6.         For i = 2 To .Range("J1").End(xlDown).Row
  7.             AR = Application.Transpose(Application.Transpose(.Range("A" & i).Resize(, 10)))
  8.             '******  產品(A:J)欄位資料導入陣列  ****
  9.             '1:產品欄位週別 ,2'產品欄:更新週別,3:MP date,4:產品類別,5:PRODUCT ID,
  10.             '6:CHILDPARTNUMBER,7:CHILD_DESCRIPTION,8:Maker,9:MAKER & CODE.10:ID & PartNumber
  11.             d.Add AR, .Range("J" & i)     '
  12.             '*****找出[產品管控清單]重複的[ID & PartNumber]  ****
  13.             If Err <> 0 Then
  14.                 If Rng Is Nothing Then
  15.                     Set Rng = .Range("J" & i)
  16.                 Else
  17.                     Set Rng = Union(.Range("J" & i), Rng)
  18.                 End If
  19.             End If
  20.             Err.Clear
  21.             '*****************************************************
  22.         Next
  23.     End With
  24.     On Error GoTo 0              '不再處裡程式的錯誤
  25.     If Not Rng Is Nothing Then Rng.EntireRow.Delete
  26.     With Worksheets("物料管控清單")
  27.         .UsedRange.Offset(1).Clear
  28.         For i = 1 To d.Count
  29.             With .Range("A" & i + 1)
  30.              '產品欄位
  31.              '1:產品欄位週別 ,2'產品欄:更新週別,3:MP date,4:產品類別,5:PRODUCT ID,
  32.              '6:CHILDPARTNUMBER,7:CHILD_DESCRIPTION,8:Maker,9:MAKER & CODE.10:ID & PartNumber
  33.                 .Range("A1") = d(i)(5)   '導入物品欄位A1-M1
  34.                 .Range("B1") = d(i)(6)
  35.                 .Range("C1") = d(i)(7)
  36.                 .Range("D1") = d(i)(8)
  37.                 .Range("E1") = d(i)(9)
  38.                 .Range("F1") = d(i)(10)
  39.                 .Range("G1") = Format(d(i)(3), "YYYY/M/D")
  40.                 .Range("H1") = d(i)(2)
  41.                 .Range("I1") = d(i)(1)
  42.                 .Range("M1") = DateDiff("d", Date, .Range("G1"))  '工作日(M)
  43.             End With
  44.         Next
  45.     End With
  46.     MsgBox d.Count & "項 OK"
  47. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 22# GBKEE

新增修改正常了

感謝版大不厭其煩的熱心幫助  :  )
用功到世界末日那一天~~~

TOP

        靜思自在 : 【行善要及時】行善要及時,功德要持續。如燒開水一般,未燒開之前千萬不要停熄火候,否則重來就太費事了。
返回列表 上一主題