ªð¦^¦Cªí ¤W¤@¥DÃD µo©«

½Ð°Ý¥i§_°µ¨ì¦Û°Ê¦©´î¸ê®Æ

  1. Sub ex()
  2. Set d = CreateObject("Scripting.Dictionary")
  3. ay = Array("OBL", "OHC", "CO")
  4. With Sheets("Sheet1")
  5. Set rng = .Range(.[C2], .Cells(.Rows.Count, 3).End(xlUp))
  6. For Each a In rng
  7.   If IsEmpty(d(a.Value)) Then
  8.   For i = 9 To 11
  9.   Set rng1 = .Cells(2, i).Resize(rng.Rows.Count, 1)
  10.   Set rng2 = .Cells(2, i + 6).Resize(rng.Rows.Count, 1)
  11.      x = Evaluate("SumProduct((" & rng.Address & "=" & a & ")*(" & rng1.Address & "<>""""))")
  12.      y = Evaluate("SumProduct((" & rng.Address & "=" & a & ")*(" & rng2.Address & "<>""""))")
  13.      If x = 0 Xor y = 0 Then mystr = IIf(mystr = "", ay(i - 9), mystr & "," & ay(i - 9))
  14.   Next
  15.   If mystr <> "" Then d(a.Value) = Array(a.Value, a.Offset(, 1).Value, a.Offset(, 2).Value, a.Offset(, 3).Value, mystr) Else d.Remove a.Value
  16.   mystr = ""
  17.   End If
  18. Next
  19. End With
  20. With Sheets("ON HAND")
  21. .UsedRange.Offset(1).ClearContents
  22. .[A2].Resize(d.Count, 5) = Application.Transpose(Application.Transpose(d.items))
  23. End With
  24. End Sub
½Æ»s¥N½X
¦^´_ 7# 198188
¾Ç®üµL²P_¤£®¢¤U°Ý

TOP

¦^´_ 9# 198188

À³¸Ó¬O§Aªº§@¥Î¤¤¤u§@ªí¨Ã«DSheet1
¨º´N¤½¦¡¤º°Ñ·Ó¥[¤W¤u§@ªí
  1. Sub ex()
  2. Set d = CreateObject("Scripting.Dictionary")
  3. ay = Array("OBL", "OHC", "CO")
  4. With Sheets("Sheet1")
  5. Set Rng = .Range(.[C2], .Cells(.Rows.Count, 3).End(xlUp))
  6. For Each a In Rng
  7.   If IsEmpty(d(a.Value)) Then
  8.   For i = 9 To 11
  9.   Set rng1 = .Cells(2, i).Resize(Rng.Rows.Count, 1)
  10.   Set rng2 = .Cells(2, i + 6).Resize(Rng.Rows.Count, 1)
  11.      x = Evaluate("SumProduct((" & Rng.Address(, , , 1) & "=" & a & ")*(" & rng1.Address(, , , 1) & "<>""""))")  '°Ñ·Ó¦ì§}¥]§t¥~³¡°Ñ·Ó
  12.      y = Evaluate("SumProduct((" & Rng.Address(, , , 1) & "=" & a & ")*(" & rng2.Address(, , , 1) & "<>""""))")  '°Ñ·Ó¦ì§}¥]§t¥~³¡°Ñ·Ó
  13.      If x = 0 Xor y = 0 Then mystr = IIf(mystr = "", ay(i - 9), mystr & "," & ay(i - 9))
  14.   Next
  15.   If mystr <> "" Then d(a.Value) = Array(a.Value, a.Offset(, 1).Value, a.Offset(, 2).Value, a.Offset(, 3).Value, mystr) Else d.Remove a.Value
  16.   mystr = ""
  17.   End If
  18. Next
  19. End With
  20. With Sheets("ON HAND")
  21. .UsedRange.Offset(1).ClearContents
  22. If d.Count > 0 Then .[A2].Resize(d.Count, 5) = Application.Transpose(Application.Transpose(d.items))
  23. End With
  24. End Sub
½Æ»s¥N½X
¾Ç®üµL²P_¤£®¢¤U°Ý

TOP

        ÀR«ä¦Û¦b : Ä@­n¤j¡B§Ó­n°í¡B®ð­n¬X¡B¤ß­n²Ó¡C
ªð¦^¦Cªí ¤W¤@¥DÃD