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

[µo°Ý] ½Ð±Ð­n¦p¦ó¨Ï¥Î VBA §P§O¤£³W«hÀx¦s®æªº¿ìªk2

¦^´_ 1# c_c_lai
¼g±o®¼¶Ãªº¡A¥]²[«¢~
d1¦r¨å : Address , ­±¿n
d2¦r¨å : ­±¿n , ­Ó¼Æ
¨Ì»Ý¨D¦A¦Û¤v§ï§ï§a
  1. Sub test()
  2.   Dim d1, d2, bCombine As Boolean, lCol As Long
  3.   Dim stripe As Range, stripeOffset As Range, rngTarget As Range
  4.   
  5.   Set d1 = CreateObject("scripting.dictionary")
  6.   With Sheets(1).[A1].CurrentRegion
  7.     .Replace What:="0", Replacement:=""
  8.     For lCol = 1 To .Columns.Count
  9.       If Application.CountA(.Columns(lCol).Cells) < .Columns(lCol).Cells.Count Then
  10.         For Each stripe In .Columns(lCol).SpecialCells(xlCellTypeBlanks).Areas
  11.           If stripe.Column = 1 Then
  12.             Set stripeOffset = stripe
  13.           Else
  14.             Set stripeOffset = .Parent.Range(stripe.Address).Offset(0, -1)
  15.           End If
  16.           bCombine = False
  17.           For Each prev In d1.keys
  18.             If Not Application.Intersect(.Parent.Range(prev), stripeOffset) Is Nothing Then
  19.               If d1.exists(stripe.Address) Then d1.Remove (stripe.Address)
  20.               Set stripe = Union(.Parent.Range(prev), stripe)
  21.               d1.Remove prev
  22.               d1(stripe.Address) = stripe.Count
  23.               Set stripeOffset = Union(stripeOffset, .Parent.Range(prev))
  24.               bCombine = True
  25.             End If
  26.           Next prev
  27.           If Not bCombine Then d1(stripe.Address) = stripe.Count
  28.         Next stripe
  29.       End If
  30.     Next lCol
  31.     .Replace What:="", Replacement:="0"
  32.   End With
  33.   
  34.   Set d2 = CreateObject("scripting.dictionary")
  35.   For Each x In d1.items
  36.     If d2.exists(x) Then
  37.       d2(x) = d2(x) + 1
  38.     Else
  39.       d2(x) = 1
  40.     End If
  41.   Next
  42.   For Each x In d2.keys
  43.     Debug.Print "­±¿n " & x & " : " & d2(x) & "­Ó"
  44.   Next
  45. End Sub
½Æ»s¥N½X

TOP

¦^´_ 6# c_c_lai
¶]ªº½d³ò¤j·§¦h¤j©O(´X­¼´X) ? ¦³Àɮ׶Ü?
§Úª¾¹D§Úªº¤èªk®Ä²v«Ü®tªº¡A
¦]¬°§Úªº§@ªk¬O¤Àcolumns¡A¨C­Ócolumns¦A¤À¬°¼Æ­Ó±aª¬³sÄòªº0¡A
µM«á¤~¨Ì³o±aª¬0 ¥h§PÂ_µ²¦X°_¨Ó¡A
¦]¬°§Ú¤]¨S·Q¨ì¦³¬Æ»ò¦n¤èªk

TOP

¦^´_ 8# c_c_lai
§Úªº¯à¶] ¡Aµ²ªG¦p¤U
­±¿n 1 : 140­Ó
­±¿n 2 : 178­Ó
­±¿n 3 : 53­Ó
­±¿n 6 : 36­Ó
­±¿n 5 : 39­Ó
­±¿n 10 : 27­Ó
­±¿n 18 : 8­Ó
­±¿n 11 : 13­Ó
­±¿n 15 : 9­Ó
­±¿n 21 : 7­Ó
­±¿n 45 : 2­Ó
­±¿n 13 : 15­Ó
­±¿n 8 : 30­Ó
­±¿n 51 : 3­Ó
­±¿n 23 : 4­Ó
­±¿n 32 : 11­Ó
­±¿n 54 : 5­Ó
­±¿n 31 : 4­Ó
­±¿n 33 : 2­Ó
­±¿n 22 : 14­Ó
­±¿n 86 : 2­Ó
­±¿n 4 : 56­Ó
­±¿n 24 : 13­Ó
­±¿n 12 : 15­Ó
­±¿n 17 : 8­Ó
­±¿n 7 : 38­Ó
­±¿n 49 : 6­Ó
­±¿n 93 : 1­Ó
­±¿n 35 : 1­Ó
­±¿n 122 : 1­Ó
­±¿n 19 : 12­Ó
­±¿n 50 : 1­Ó
­±¿n 109 : 1­Ó
­±¿n 9 : 25­Ó
­±¿n 46 : 3­Ó
­±¿n 60 : 2­Ó
­±¿n 37 : 2­Ó
­±¿n 28 : 9­Ó
­±¿n 40 : 4­Ó
­±¿n 26 : 3­Ó
­±¿n 41 : 4­Ó
­±¿n 14 : 9­Ó
­±¿n 16 : 13­Ó
­±¿n 30 : 3­Ó
­±¿n 87 : 1­Ó
­±¿n 48 : 2­Ó
­±¿n 29 : 4­Ó
­±¿n 72 : 4­Ó
­±¿n 20 : 10­Ó
­±¿n 77 : 1­Ó
­±¿n 84 : 1­Ó
­±¿n 128 : 1­Ó
­±¿n 61 : 2­Ó
­±¿n 39 : 2­Ó
­±¿n 78 : 1­Ó
­±¿n 59 : 1­Ó
­±¿n 81 : 1­Ó
­±¿n 56 : 2­Ó
­±¿n 102 : 2­Ó
­±¿n 36 : 1­Ó
­±¿n 25 : 6­Ó
­±¿n 34 : 4­Ó
­±¿n 38 : 3­Ó
­±¿n 100 : 3­Ó
­±¿n 91 : 1­Ó
­±¿n 75 : 1­Ó
­±¿n 42 : 1­Ó
­±¿n 89 : 1­Ó
­±¿n 85 : 1­Ó
­±¿n 27 : 1­Ó
­±¿n 96 : 1­Ó
­±¿n 108 : 1­Ó
­±¿n 66 : 1­Ó
­±¿n 82 : 1­Ó
­±¿n 53 : 2­Ó
­±¿n 63 : 1­Ó
­±¿n 55 : 1­Ó
­±¿n 119 : 1­Ó
­±¿n 381 : 1­Ó

TOP

¦^´_ 9# c_c_lai
.Parent ¬O«ü¨ì «e­± With Sheets(1).[A1].CurrentRegion ªº parent ¤]´N¬O sheets(1)
ª½±µ¥Î Range(prev) ¡AÀ³¸Ó¬Û·í©óActiveSheet.Range(prev)¡A·Ó¹D²z¬O¨SÔ£¼vÅT¡C

TOP

¥»©«³Ì«á¥Ñ stillfish00 ©ó 2013-12-7 16:05 ½s¿è

¦^´_ 22# ML089
Nice Job¡A´£¨ú¨ìArray¥[³t«Ü¦h¡A
§Ú¤]µo²{§Úªº¤èªkÅÞ¿è¤W¦³°ÝÃD¡A
¥t¥~¡ATime­ì¥»´N¥u¦³¨ì¬í¦Ó¤w¡A®É¶¡¶Ã¸õ¬O¦]¬°§A§â inputbox ªº®É¶¡¤]ºâ¤F¡C

TOP

        ÀR«ä¦Û¦b : ±o²z­nÄǤH¡A²zª½­n®ð©M¡C
ªð¦^¦Cªí ¤W¤@¥DÃD