返回列表 上一主題 發帖

發問∶請各位高手指導修正

回復 1# eric093
試試看
  1. Option Explicit
  2. Sub aa()
  3. Dim Rng(1 To 4), E As Range
  4. Set Rng(1) = Sheets(1).Range("A2")
  5. 'Set Rng(2) = Sheets(1).Range("G:G") '範圍大(整欄)相對跑迴圈時間長
  6. Set Rng(2) = Sheets(1).Range("G2", Sheets(1).Range("G2").End(xlDown)) '範圍小(有資料的整欄)
  7. Do While Rng(1) <> ""
  8.     Set Rng(3) = Rng(2).Find(Rng(1), lookat:=xlWhole)
  9.     If Not Rng(3) Is Nothing Then
  10.         For Each E In Rng(2)             '所有客戶編號中跑迴圈
  11.             If Rng(1) = E And Rng(1).Offset(, 3) = E.Offset(, 1) Then '下單者相同
  12.                Rng(1).Offset(, 4).Value = E.Offset(, 2)
  13.              End If
  14.          Next
  15.     End If
  16.     Set Rng(1) = Rng(1).Offset(1)
  17. Loop
  18. End Sub
  19. Sub Ex()
  20.     Dim Rng(1 To 3) As Range, E As Range
  21.     Set Rng(1) = Sheets(1).Range("A2")
  22.     Set Rng(2) = Sheets(1).Range("G:G")
  23.     Do While Rng(1) <> ""
  24.         Set Rng(3) = Rng(2).Find(Rng(1), lookat:=xlWhole)
  25.         If Not Rng(3) Is Nothing Then
  26.             With Rng(2)
  27.                 .Replace Rng(1), "=5/0"     '相同客戶編號更換為錯誤值
  28.                 With .SpecialCells(xlCellTypeFormulas, xlErrors)  '錯誤值的範圍

  29.                     For Each E In .Cells    '僅相同客戶編號中跑迴圈
  30.                         If E.Offset(, 1) = Rng(1).Offset(, 3) Then Rng(1).Offset(, 4) = E.Offset(, 2)
  31.                         '下單者相同
  32.                     Next
  33.                 .Value = Rng(1)             '錯誤值改回為客戶編號
  34.                 End With
  35.             End With
  36.         End If
  37.         Set Rng(1) = Rng(1).Offset(1)
  38.     Loop
  39. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

        靜思自在 : 一個缺口的杯子,如果換一個角度看它,它仍然是圓的。
返回列表 上一主題