¼ÐÃD:
[µo°Ý]
½Ð±Ðn¦p¦ó¨Ï¥Î VBA §P§O¤£³W«hÀx¦s®æªº¿ìªk2
[¥´¦L¥»¶]
§@ªÌ:
c_c_lai
®É¶¡:
2013-12-5 07:55
¼ÐÃD:
½Ð±Ðn¦p¦ó¨Ï¥Î VBA §P§O¤£³W«hÀx¦s®æªº¿ìªk2
¦]¨Ï¥Î FireFox¡BIE¡B Google Chrome µ¥¤u¨ã¤W¶Ç¹Ï¤ù¤Î´ú¸ÕÀÉ®×
³£µLªk¶¶§Q§¹¦¨°õ¦æ (¤@¤ùªÅ¥Õ¡A¥BµLªk¦^¨ììµe±)¡A©Ò¥H¦A¦¸
¥t°_Äl¨_¡C
¤£¬Onpºâ,¬On²Îp,²Ä¤@Ó¤u§@ªí¦³"0"³¡¥÷ªº±¿n,
1Ó0²Õ¦¨ªº±¿n :¦³¦h¤ÖÓ?
2Ó0²Õ¦¨ªº±¿n¡G¦³¦h¤ÖÓ
3Ó0²Õ¦¨ªº±¿n ¦³¦h¤ÖÓ
.
.
50Ó0²Õ¦¨ªº±¿n¡G¦³¦h¤ÖÓ?
.
n§Q¥Î²Îp¥X¨Óªº¼Æ¾Ú,»s¦¨¹³§é½uªº¹Ïªí¡C
²Ä¤@¤u§@ªí¼Æ¦r¬O±q²Ä¤G¤u§@ªí¹Ï¤ùÂà´«¨Óªº
0 ¸ò255 ¬O¥Nªí²Ä¤G¤u§@ªí¹Ï¤ù ÃC¦âªº¼Æ¦r
·q½Ð¤j®a«ü±Ð¡AÁÂÁ¡I
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 255 255
0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 255 255 255 255 255 255
0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 255 255 255 255 255 255
0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 0 0 0 0 255 255 255 255 255 255 255
0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 0 0 0 0 255 255 255 255 255 255
0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 0 0 0 0 255 255 255 255 255 255 255
0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 0 0 0 0 255 255 255 255 255 255 255 255
0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 0 0 0 0 255 255 255 255 255 255 255
0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 0 0 0 0 255 255 255 255 255 255 255 255
0 0 255 255 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0
255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 255 255 255 255 0 0 0 0
255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 255 255 0 0 0 0 0
255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 0 0 0 0 0 0
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0
255 255 255 255 255 255 255 255 255 255 255 0 255 255 255 255 255 255 255 255 255 255 0 0 0 0 255
255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 255 255 255 255 0 0 255 255
255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 255 255
0 0 0 255 255 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 255 255 255
0 0 255 255 255 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255
0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0
0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0
0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0
0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0
0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
½Æ»s¥N½X
§@ªÌ:
c_c_lai
®É¶¡:
2013-12-5 07:59
¦^´_
1#
c_c_lai
¯u©_©Ç¡I ¤§«e±ý¤W¶Çªºªþ¥ó©ó¦¹¦¸µo¤å¡A³ºµM²ö¦W¦a¦Û°Ê¥þ³¡¥X²{¤F¡A
¹ê¦b¤Ó¦n¤F¡C
§@ªÌ:
c_c_lai
®É¶¡:
2013-12-5 08:08
¦^´_
2#
c_c_lai
¹ï¤£°_¡I ¦³Ãö luhpro µ¥¤j¤jªº¦^¤å¡A
§Ú¦bìµo¤å "½Ð±Ðn¦p¦ó¨Ï¥Î VBA §P§O¤£³W«hÀx¦s®æªº¿ìªk"¤¤
¬Ý¤£¨ì (¦³¦¬¨ì"®ø®§"¡B¦ý¶i¥h±ý«ôŪ®É«oµL¦¹¬ÛÃö¦^¤å¤º®e)¡A
·q½Ð¦A¦¸½ç±Ð¡AÁÂÁ§Aµ¥¡C
§@ªÌ:
stillfish00
®É¶¡:
2013-12-5 13:46
¦^´_
1#
c_c_lai
¼g±o®¼¶Ãªº¡A¥]²[«¢~
d1¦r¨å : Address , ±¿n
d2¦r¨å : ±¿n , Ó¼Æ
¨Ì»Ý¨D¦A¦Û¤v§ï§ï§a
Sub test()
Dim d1, d2, bCombine As Boolean, lCol As Long
Dim stripe As Range, stripeOffset As Range, rngTarget As Range
Set d1 = CreateObject("scripting.dictionary")
With Sheets(1).[A1].CurrentRegion
.Replace What:="0", Replacement:=""
For lCol = 1 To .Columns.Count
If Application.CountA(.Columns(lCol).Cells) < .Columns(lCol).Cells.Count Then
For Each stripe In .Columns(lCol).SpecialCells(xlCellTypeBlanks).Areas
If stripe.Column = 1 Then
Set stripeOffset = stripe
Else
Set stripeOffset = .Parent.Range(stripe.Address).Offset(0, -1)
End If
bCombine = False
For Each prev In d1.keys
If Not Application.Intersect(.Parent.Range(prev), stripeOffset) Is Nothing Then
If d1.exists(stripe.Address) Then d1.Remove (stripe.Address)
Set stripe = Union(.Parent.Range(prev), stripe)
d1.Remove prev
d1(stripe.Address) = stripe.Count
Set stripeOffset = Union(stripeOffset, .Parent.Range(prev))
bCombine = True
End If
Next prev
If Not bCombine Then d1(stripe.Address) = stripe.Count
Next stripe
End If
Next lCol
.Replace What:="", Replacement:="0"
End With
Set d2 = CreateObject("scripting.dictionary")
For Each x In d1.items
If d2.exists(x) Then
d2(x) = d2(x) + 1
Else
d2(x) = 1
End If
Next
For Each x In d2.keys
Debug.Print "±¿n " & x & " : " & d2(x) & "Ó"
Next
End Sub
½Æ»s¥N½X
§@ªÌ:
c_c_lai
®É¶¡:
2013-12-5 20:28
¦^´_
4#
stillfish00
¤£¦n·N«ä¡ARUN ¨ì²{¦b¤w¸g¹L ¥bÓ¦h¤p®É (µL¦^À³)¡A
¥i¯àÀɮפӤj¤F§a¡A©ú¤é§Ú¦A¸Õ¸Õ¡AÁÂÁ§A¡I
§@ªÌ:
c_c_lai
®É¶¡:
2013-12-6 09:32
¦^´_
4#
stillfish00
§Úµyµyקï¤F³B¸Ìªº½d³ò¡G
°²³] lCol ¥Ø«eÈ ¬° 1
' Sheets(1).Columns(lCol).Cells.Count : 65536
' Sheets(1).Range(Chr(64 + lCol) & Sheets(1).Rows.Count).End(xlUp).Row : 960
' Application.CountA(.Columns(lCol).Cells) : 861
½Æ»s¥N½X
±N³B¸Ìªº½d³ò¤©¥HÁY¤p¡A¥HÁקK¯Ó®É³B¸Ì¡G
' If Application.CountA(.Columns(lCol).Cells) < .Columns(lCol).Cells.Count Then
If Application.CountA(.Columns(lCol).Cells) < .Range(Chr(64 + lCol) & .Rows.Count).End(xlUp).Row Then
½Æ»s¥N½X
¥Ø«e¦b°õ¦æ¹Lµ{¤¤·|¥X²{ 1004 ªº¿ù»~°T®§¡A©Ò¥HÁÙ¦b Debug ¤¤¡C
(À³¥Îµ{¦¡©Îª«¥ó©w¸q¤Wªº¿ù»~)
ÁÂÁ§A¡I
§@ªÌ:
stillfish00
®É¶¡:
2013-12-6 09:42
¦^´_
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
§@ªÌ:
c_c_lai
®É¶¡:
2013-12-6 10:14
¦^´_
7#
stillfish00
#1 ¤Wªºªþ¥ó "±¿n¤j¤p¤À§G²Îp.rar" (109.12 KB)
¤£ª¾¹D§A¯à§_§¹¾ã¤U¸ü¤U¨Ó¡H
¯u³Â·Ð§A¤F¡I
§@ªÌ:
c_c_lai
®É¶¡:
2013-12-6 10:19
¦^´_
7#
stillfish00
¥t¥~¡A
If Not Application.Intersect(.Parent.Range(prev), stripeOffset) Is Nothing Then
½Æ»s¥N½X
§Ú±N¥¦§ï¦¨
If Not Application.Intersect(Range(prev), stripeOffset) Is Nothing Then
½Æ»s¥N½X
¤£ª¾¹ï§_¡H ¦p¦¹¥¦¤~¯à§PÂ_
' Application.Intersect(Range(prev), stripeOffset) : Nothing : Object
½Æ»s¥N½X
§@ªÌ:
stillfish00
®É¶¡:
2013-12-6 10:22
¦^´_
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Ó
§@ªÌ:
stillfish00
®É¶¡:
2013-12-6 10:26
¦^´_
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
§@ªÌ:
ML089
®É¶¡:
2013-12-6 12:30
¥»©«³Ì«á¥Ñ ML089 ©ó 2013-12-6 12:31 ½s¿è
¦^´_
1#
c_c_lai
½Ð°ÝÀɮ׮פ¤¦³¹Ï¤ù¡A¦p¦ó±N¹Ï¤ùªº¹Ï§ÎÂন 0, 255¼Æ¦r
ºâ0ªº±¿n¡A§Úªì¨Bºâ§¹¦³381²Õ(¤]¤£ª¾¹D¹ï¤£¹ïÁÙ¨S¦³Åçºâ)¡A¨ä¤¤¦³«Ü¦h²Õ¬O 0¡A»Ýn§â0²Õ¹LÂo±¼¶Ü?
¦³¼Ð·Çµª®×¥i¥Hµ¹§ÚÅçÃÒ¶ý?
§@ªÌ:
Hsieh
®É¶¡:
2013-12-6 15:05
¦^´_
2#
c_c_lai
¸ê®Æ¶qÃe¤j¡A¥B¦]¬°¦UÓÀx¦s®æ¥²¶·n¥H»¼°j¤è¦¡´ú¬O³sÄò»P§_
¶]ªº¦³ÂI¤[
¥ÎÁY¤p¸ê®Æ¶q¥ý¦æ´ú¸ÕÀ³¸ÓÁÙOK¡A§A´ú¸Õ¬Ý¬Ý
[attach]16979[/attach]
§@ªÌ:
c_c_lai
®É¶¡:
2013-12-6 17:14
¦^´_
12#
ML089
¤£¦n·N«ä²{¦b¤~¦^¨Ó¡I
¨º±i¹Ï¤ù¥u¬O¼Ë±i¦Ó¤w¡A
§ÚÓ¤H¥ç¦b±´¯Á¤¤¡A¨º¬O§Ú¥t¤@¤Í¤Hªº´£°Ý¡A
¤]¦h»X¦U¦ì¹©¤O¨ó§U¡A§Æ±æ¯à±q¤¤§ä¥XÀYºü¡C
§@ªÌ:
c_c_lai
®É¶¡:
2013-12-6 17:17
¦^´_
13#
Hsieh
ÁÂÁ±z¡I
«Ý´ú¥Xµ²ªG«á¦A¦æ¦V±z³ø§i¡C
§@ªÌ:
ML089
®É¶¡:
2013-12-6 18:25
¦^´_
14#
c_c_lai
½Ð°Ý³s¦b¤@°_±oì«h¬O¤°»ò¡A½Ð¬Ý¹Ï¤¤»¡©ú
[attach]16982[/attach]
§@ªÌ:
c_c_lai
®É¶¡:
2013-12-6 20:51
¦^´_
13#
Hsieh
¦^´_
16#
ML089
¦^´_
11#
stillfish00
ÁÂÁ¤j®a¡A²×©ó´ú¸Õ¥Xµ²ªG¤F¡AÁöµM³t«×¤WµyµyºC¤FÂI¡G
[attach]16983[/attach]
[attach]16984[/attach]
§@ªÌ:
c_c_lai
®É¶¡:
2013-12-6 20:56
¦^´_
13#
Hsieh
¦^´_
16#
ML089
¦^´_
11#
stillfish00
[attach]16985[/attach]
·PÁ¦U¦ìªºÀ°¦£¡A¦pÁÙ¦³§ó¨Î®Ä¯qªº¸Ñ¨M¤è®×¡A
·q½Ð¤£§[«ü±Ð¡I
§@ªÌ:
c_c_lai
®É¶¡:
2013-12-7 08:04
¥»©«³Ì«á¥Ñ c_c_lai ©ó 2013-12-7 08:05 ½s¿è
¦^´_
16#
ML089
¥H±`²z¨Ó½×¡A 10 »P 25 À³µL©¼¦¹¶¡¤§¦êÁp¡AÀ³Äݤ£¦P¤§°Ï¶ô¤~¬O¡A
§A¦b¹ê§@¤W¬O¦p¦ó¸ÑªRªº¡H
§@ªÌ:
c_c_lai
®É¶¡:
2013-12-7 08:19
¦^´_
16#
ML089
Hsieh ª©¤j¥L¬OÀ³¥Î "»¼°j" ªº³B²z§Þ¥©¡A¨Ó¨D¥X¦UÂkÄݰ϶ôªº½d³ò¡A
³oºØÂI¤Î©ó±ªº¹B¥Î¬OÓÆZ¤£¿ùªº Idea¡A§A¬Ý¬Ýµ{¦¡½X²Ó²Ó¦a¥h±ÀºV¡A
¬OÆZȱo¦^¨ýªº¡A ¦bùØÀY§Ú¥[¤W¤F sRng ªº¦ì§}¬ö¿ý³B²z¡A¨Ã¦P®É¨D¨ú
¨CӰ϶ôªº¹ê»Ú¦ì§}¼Æ¡A¥H´£¨Ñ°Ñ¦Ò¤§¥Î¡G
Option Explicit
Public s As Long
Public sRng As Variant
Sub ex()
Dim dic As Object
Dim A As Range, Rng As Range, sPos As Range
Set dic = CreateObject("Scripting.Dictionary")
dic("³sÄò¼Æ¶q") = "¼Æ¶q"
' ¼W¦C³¡¤À
¤u§@ªí2.[C1] = "³sÄò¦ì§}"
¤u§@ªí2.[D1] = "²Õ¦X¼Æ¶q"
With ¤u§@ªí1
Set Rng = .Range("A1").CurrentRegion
Rng.Replace 0, Empty, xlWhole
Set sPos = ¤u§@ªí2.[C2]
Set A = Rng.Find(Empty)
Do Until A Is Nothing
A = 0: s = 1
Cnt A
dic(s) = dic(s) + 1
sPos = sRng
sPos.Offset(0, 1) = Range(sRng).Count
Set A = Rng.Find(Empty)
Set sPos = sPos.Offset(1)
Loop
End With
With ¤u§@ªí2
.[A1].Resize(dic.Count, 1) = Application.Transpose(dic.keys)
.[B1].Resize(dic.Count, 1) = Application.Transpose(dic.items)
.[A1].Resize(dic.Count, 2).Sort key1:=.[A1], Header:=xlYes
End With
' MsgBox dic.Count - 1
Set dic = Nothing
End Sub
Function Cnt(Rng As Range)
Dim A As Range, Temp As Range
Dim i As Integer
For Each A In Rng
For i = -1 To 1 Step 2
If A.Row + i > 0 And A.Row + i < ¤u§@ªí1.Range("A1").CurrentRegion.Rows.Count Then
If IsEmpty(A.Offset(i, 0)) Then Set Temp = Union(Rng, A.Offset(i, 0)) ' "$BF$4:$BF$5"
End If
Next
For i = -1 To 1 Step 2
If A.Column + i > 0 And A.Column + i < ¤u§@ªí1.Range("A1").CurrentRegion.Columns.Count Then
If IsEmpty(A.Offset(, i)) Then Set Temp = Union(Rng, A.Offset(, i)) ' "$BF$4:$BG$4"
End If
Next
Next
If Not Temp Is Nothing Then ' True
Temp = 0
s = Temp.Count
sRng = Temp.Address
Cnt Temp
End If
End Function
½Æ»s¥N½X
§@ªÌ:
c_c_lai
®É¶¡:
2013-12-7 08:40
¥»©«³Ì«á¥Ñ c_c_lai ©ó 2013-12-7 08:42 ½s¿è
¦^´_
20#
c_c_lai
20# ªº Ex() ¤º¤§ C¡BD Äæ¤@¦æ¤@¦æ¦a¥h»¼¼W¬O¬°¤Fn
Æ[¹î¸ê®Æ³B²z¤Î¹Lµ{¡C¥H¤U¬°§ï¥H "¦r¨å" ³B¸Ì¡G
Sub ex2()
Dim dic As Object, dic2 As Object
Dim A As Range, Rng As Range
Set dic = CreateObject("Scripting.Dictionary")
Set dic2 = CreateObject("Scripting.Dictionary")
dic("³sÄò¼Æ¶q") = "¼Æ¶q"
dic2("³sÄò¦ì§}") = "²Õ¦X¼Æ¶q"
With ¤u§@ªí1
Set Rng = .Range("A1").CurrentRegion
Rng.Replace 0, Empty, xlWhole
Set A = Rng.Find(Empty)
Do Until A Is Nothing
A = 0: s = 1
Cnt A
dic(s) = dic(s) + 1
dic2(sRng) = Range(sRng).Count
Set A = Rng.Find(Empty)
Loop
End With
With ¤u§@ªí2
.[A1].Resize(dic.Count, 1) = Application.Transpose(dic.keys)
.[B1].Resize(dic.Count, 1) = Application.Transpose(dic.items)
.[A1].Resize(dic.Count, 2).Sort key1:=.[A1], Header:=xlYes
.[C1].Resize(dic2.Count, 1) = Application.Transpose(dic2.keys)
.[D1].Resize(dic2.Count, 1) = Application.Transpose(dic2.items)
End With
' MsgBox dic.Count - 1
Set dic = Nothing
Set dic2 = Nothing
End Sub
½Æ»s¥N½X
·PÁ Hsieh ª©¤jªº«ü¾É¡I
§@ªÌ:
ML089
®É¶¡:
2013-12-7 13:32
¦^´_
19#
c_c_lai
¦^´_
13#
Hsieh
¦^´_
4#
stillfish00
§Ú°µ3Ӽзǹϫ¬¤Î²Îp¼Æ¶q¥H¨Ñ¤j®a´ú¸Õ¥Î
§Úªºµ{¦¡¤]±Ä¥Î»¼°j©I¥s¤è¦¡³B²z¡Aì¹Ï§Î°õ¦æ®É¶¡¤j·§2~3¬í´N¯à§¹¦¨¡C
³oµ{¦¡¼g±o«ÜºC«Ü¤[¡A¨CÓ«ü¥O³£¬O±qºô¸ô¤W©Î°Ñ¦Ò¤j®aªºµ{¦¡ºCºC°ï¥X¨Óªº¡A¤@¦@ªá¤F7~8¤p®É¤~§¹¦¨¡A¤]º¡¦³¦¨´N·P¡A½Ð¦³»yªk«Ý§ï¶i¤§³B½Ð¤j®a¦h¦h«ü±Ð¡C
¤U¤è¬°´ú¸ÕÀÉ®×
[attach]16993[/attach]
[attach]16994[/attach]
§@ªÌ:
ML089
®É¶¡:
2013-12-7 13:37
¦^´_
22#
ML089
Timer¨Ï¥Îªº©Ç©Çªº¡A¦³®ÉÀþ¶¡°õ¦æ§¹¦¨«oÅã¥Ü9.X¬í¡ATimer¤ÎTimeEpºâ¥X¨Ó¤]®t«Ü¦h(1.5¬í¤Î1.0¬í)¡A´X¥G®t1.5¿¡A¤j®a¥i¥HÀ°§Ú¬Ý¬Ý¶Ü?
§@ªÌ:
ML089
®É¶¡:
2013-12-7 13:55
¦^´_
22#
ML089
³o¬ODEBUD¹ï¸Ü®Ø¿é¤J1®É¡A¥i¥H²£¥Í°}¦C³B²z«áªº¸ê®Æ¥H¨Ñ¬d®Ö
[attach]16995[/attach]
§@ªÌ:
c_c_lai
®É¶¡:
2013-12-7 15:19
¦^´_
23#
ML089
½Ð±Ð¡G
' ¡õ pºâ¨C²ÕӼơC ª`·N! Frequency ¦^¶Ç i + 1 ²Õ¡A©Ò¥ý±N i - 1
Bins_array = Application.Evaluate("Row(1:" & i - 1 & ")")
ArrN = Application.Frequency(Arr, Bins_array)
MaxN = Application.Max(ArrN)
' ¡õ ²Îp¨C²ÕӼơC ª`·N! Frequency ¦^¶Ç i + 1 ²Õ¡A©Ò¥ý±N MaxN - 1
Bins_array = Application.Evaluate("Row(1:" & MaxN - 1 & ")")
ArrF = Application.Frequency(ArrN, Bins_array)
½Æ»s¥N½X
Bins_array¡BArrN ¡BMaxN ¡BArrF ªº¤º²[¤Î§@¥Î¡A¯à§_¥[¥H¸ÑªR¡A
§Ú¹ï¤@¨Ç¥Î»y¤£«Ü±E±x¡A¥B¤ÏÀ³¸û¿ð¶w¡AÁÂÁÂÅo¡I
§@ªÌ:
stillfish00
®É¶¡:
2013-12-7 16:00
¥»©«³Ì«á¥Ñ 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
§@ªÌ:
ML089
®É¶¡:
2013-12-7 16:40
¦^´_
26#
stillfish00
«¢«¢¡A¤º¦æ¤H¤@¬Ý´N§ä¥X°ÝÃD¡A§Ú³ºµM©Çtimer¨ç¼Æ©Ç©Çªº¡A·PÁÂ
§@ªÌ:
c_c_lai
®É¶¡:
2013-12-7 17:21
¥»©«³Ì«á¥Ñ c_c_lai ©ó 2013-12-7 17:22 ½s¿è
¦^´_
26#
stillfish00
¦^´_
27#
ML089
ªº½T¡I
´£¨ú¨ìArray½T¹ê¥[³t«Ü¦h¡A¦P®É¤]¸Ñ¨M¤F¿ð½wªº§xÂZ¡C
ÁÂÁ§Aµ¥ªº«ü±Ð¡I
§@ªÌ:
ML089
®É¶¡:
2013-12-7 17:37
¦^´_
25#
c_c_lai
Frequency ¥i¥H«öF1¬Ý¬Ý»¡©ú¡C(¥H«e§Ú¤@¶}©l¬Ý¤]¤£À´¡A³o¬O¥¿±`ªº¡A¦h°µÃD¥Ø¤~¯àºCºC¤F¸Ñ)
¥ÎÁ|¨Ò»¡©ú
¨Ò¤@:¦³¤@¸s¼Æ¦r {1,2,3,4,5,6,7,8,9}¡An¨D3Ó½d³ò¦U¦³¦h¤Ö¼Æ¦r 1~2¡B3~7¡B8~9¡A¤½¦¡¦p¤U
=FREQUENCY({1,2,3,4,5,6,7,8,9},{2,7,9}) = {2;4;2;0}¡A³Ì«á0¬O«ü¤j©ó9¤§¼Æ
¥ÎÁ|¨Ò»¡©ú
¨Ò¤G:¨Ò¦p¥H#22µ{¦¡¤¤¤U±³¡¤Àµ{¦¡¨Ó»¡©ú
' ¡õ pºâ¨C²ÕӼơC ª`·N! Frequency ¦^¶Ç i + 1 ²Õ¡A©Ò¥ý±N i - 1
Bins_array = Application.Evaluate("Row(1:" & i - 1 & ")")
ArrN = Application.Frequency(Arr, Bins_array)
MaxN = Application.Max(ArrN)
' ¡õ ²Îp¨C²ÕӼơC ª`·N! Frequency ¦^¶Ç i + 1 ²Õ¡A©Ò¥ý±N MaxN - 1
Bins_array = Application.Evaluate("Row(1:" & MaxN - 1 & ")")
ArrF = Application.Frequency(ArrN, Bins_array)
»¡©ú
' ¡õ pºâ¨C²ÕӼơC
1. ±N¨C²Õ³sÄò0¶i¦æ§Ç¸¹½s½X©ñ¦b°}¦C¤¤¡A°}¦C¸ê®Æ¨Ò¦p¤U
Arr={1,1,.."X" ,2,.."X" ,3,3,.."X" ,4,4,.."X" ,5,5,5,.."X" ,6,.."X" ,7,.."X" ,8,8,.."X" ,9,9,9,.."X"}
2. §Ú·Q¨D 1¦³´XÓ¡A2¦³´XÓ....9¦³´XÓ¡A¥i¥H¥Î¤U¦C¤½¦¡
ArrN = FREQUENCY(Arr,{1,2,3,4,5,6,7,8}) = {2;1;2;2;3;1;1;2;3}
¦^¶ÇȪí¥Ü¬° 1¦³3Ó¡B2¦³1Ó¡B3¦³2Ó¡B4¦³2Ó¡B5¦³3Ó¡B6¦³1Ó¡B7¦³1Ó¡B8¦³2Ó¡B9¦³3Ó
3. MaxN = Max({2;1;2;2;3;1;1;2;3}) = 3¡A©Ò¦³²Õ¼Æ¤¤³Ì¤jӼƬ° 3 («á±pºân¥Î)
' ¡õ ²Îp¨C²ÕӼơC
4. ¤W±¤w¸gpºâ¥X¨C²ÕªºÓ¼Æ°}¦C ArrN ¤Î³Ì¤jÓ¼Æ MaxN¡An²Îp¦UӼƦ³´X²Õ¡A¤½¦¡¦p¤U
ArrF = FREQUENCY(ArrN,{1,2,...,MaxN-1}) = {{2;1;2;2;3;1;1;2;3},{1,2}) = {3;4;2}
¦^¶ÇȪí¥Ü¬° 1Ó¦³3²Õ¡B2Ó¦³4²Õ¡B3Ó¦³2²Õ
5. ¤½¦¡¤¤ Bins_array = Application.Evaluate("Row(1:" & i - 1 & ")") ´N¬On²£¥Í {1,2,...i-1} §Ç¸¹
6. ¨ä¥L»¡©ú´Nn¾a GOOGLE ¨Ó¬d¸ß¡A¦h¬Ý´XÓºô¶»¡©ú´N¯à©ú¥Õ¡A§Ú¤]¬O¤@Ãä¬d¤@ÃäTRY¤~¦¨¥\ªº¡C
豵IJVBA¥\¤O©|²L¡A»¡©ú¤£²M¤§³B©|¥B¨£½Ì¡C
§@ªÌ:
ML089
®É¶¡:
2013-12-7 17:46
¦^´_
28#
c_c_lai
×¥¿p®É¤è¦¡¿ù»~¡A±N INPUTBOX() ²¾¦Ü³Ì«e±¡A«z! 1¬í¦h´N¯à§¹¦¨¡C
[attach]16998[/attach]
§@ªÌ:
c_c_lai
®É¶¡:
2013-12-7 17:53
¦^´_
29#
ML089
ÁÂÁ§A¸ÔºÉªº»¡©ú¡Aè¤~§Ú¤w¥þ³¡¨Ï¥Î Debug ¶]¤F¤@°é¡A
¤£©úÁA³B¥ç¤w¥ÑDebug¤¤±o¨ìµª®×¡A¦¹µ{¦¡À³¥Î°}¦C³B²z
¥ç±Æ°£¤Fì¥ý°õ¦æ³t«×¿ð½wªº§xÂZ¡AÁÂÁ§AªºÀ°¦£¡I
§@ªÌ:
ML089
®É¶¡:
2013-12-7 20:07
¦^´_
31#
c_c_lai
¬Q¤Ñ¬O¥ÎÀx¦s®æ¤è¦¡³B²z¡A¤jP»Ýn3¤ÀÄÁ¡A¦¤W§ï¬°°}¦C³B²z¬ù»Ýn10¬íÄÁ¡A¦A¶i¦æÀu¤Æ¥i¹F2¡ã3¬íÄÁ
¥i¨£Àx¦s®æ»P°}¦C³B²z³t«×¬Û®t20¿¥H¤W
§@ªÌ:
c_c_lai
®É¶¡:
2013-12-7 20:41
¦^´_
32#
ML089
¸Õ¸Õ¸gקï«á¤§µ{¦¡¡G
[attach]17000[/attach]
[attach]17001[/attach]
§@ªÌ:
c_c_lai
®É¶¡:
2013-12-7 20:45
¦^´_
32#
ML089
§ó¥¿¹Ï¤ù¡A¤WÀYªº¬O¦b Debug Mode¡A ©Ò¥H®É¶¡¸ûªø¡A
§ó¥¿«á¤§¹Ï¤ù¬°½T¹ê°õ¦æ¬í¼Æ¡C
[attach]17002[/attach]
§@ªÌ:
c_c_lai
®É¶¡:
2013-12-7 20:50
¥»©«³Ì«á¥Ñ c_c_lai ©ó 2013-12-7 20:51 ½s¿è
¦^´_
32#
ML089
¼W׫ᤧµ{¦¡½X¦p¤U¡G
Option Explicit
' ML089 ¼g©ó 2013/12/7
' http://forum.twbts.com/viewthread.php?tid=10927&extra=&page=3
Sub ³sÄò0ӼƤ§²Îp()
Dim dic As Object
Dim t1 As Date, tt1 As Date, t2 As Date, tt2 As Date
Dim Arr As Variant, xDebug As String, sRng As Range, WriteToRange As Range
Dim i As Integer, c As Long, r As Long, y As Integer, rN As Long, cN As Long
Dim Bins_array As Variant, ArrF As Variant, ArrN As Variant, MaxN As Double
Application.Calculation = xlManual ' Ãö³¬pºâ
Application.ScreenUpdating = False ' Ãö³¬Åã¥Ü
xDebug = InputBox("°}¦Cpºâ¸ê®Æ¼g¥X¡C¶ñ¤J 1 / 0 ±±¨î :", "DeBug", 0) ' ¡·°}¦Cpºâ¸ê®Æ¼g¥X¡C¶ñ¤J 1¡BTure / 0¡BFlase ±±¨î
If xDebug Then ActiveSheet.Copy after:=ActiveSheet ' Test Use 1
t1 = Timer: tt1 = Time ' ¬í¼Æp®É¾¹
Set dic = CreateObject("Scripting.Dictionary")
dic("³sÄò¦ì§}") = "²Õ¦X¼Æ¶q"
' ¡õ §ä 0¡A±N¨C²Õ³sÄò 0 ½s¤£¦P§Ç¸¹
' Arr : Variant/Variant(1 to 20, 1 to 26)
Arr = ActiveSheet.[A1].CurrentRegion ' Ū¤J°}¦C
i = 0
rN = UBound(Arr, 1) ' Y Rows 20
cN = UBound(Arr, 2) ' X Columns 26
For c = 1 To cN
For r = 1 To rN ' ¦¹°j°é±N°}¦C«D0ȧאּ¤å¦r«¬ºA
If Arr(r, c) <> 0 Then Arr(r, c) = "X" ' Empty ·|³Qµø¬° 0¡A"" ¤£·|
Next
Next
For c = 1 To cN
For r = 1 To rN ' ¦¹°j°é§ä 0
If Arr(r, c) = 0 Then
i = i + 1
Set sRng = Sheets("TEST2").Cells(r, c)
Call xRep(Arr, r, c, i, sRng)
dic(sRng.Address) = Range(sRng.Address).Count
End If
Next
Next
If xDebug Then [A1].Resize(rN, cN) = Arr ' Test Use 2 ' i = 11
' ¡õ pºâ¨C²ÕӼơC ª`·N! Frequency ¦^¶Ç i + 1 ²Õ¡A©Ò¥ý±N i - 1
Bins_array = Application.Evaluate("Row(1:" & i - 1 & ")") ' i = 11
' pºâ¬Y¤@Ó½d³ò¤ºªºÈ¥X²{ªº¦¸¼Æ¡A¨Ã¶Ç¦^¤@Ó««ª½¼ÆÈ°}¦C¡C
' ¨Ò¦p¡A¥Î FREQUENCY ¨Ópºâ¬Y¨Ç½d³ò¤ºªº¦Ò¸Õ¦¨ÁZ¦U¦³´XÓ¤H¡C
' ¥Ñ©ó FREQUENCY ¶Ç¦^°}¦C¡A¦]¦¹¥²¶·¿é¤J¬°°}¦C¤½¦¡¡C
ArrN = Application.Frequency(Arr, Bins_array)
MaxN = Application.Max(ArrN) ' MaxN : 62 : Variant/Double (¥H¤W²Îp¼Æªº³Ì¤jÈ)
' ¡õ ²Îp¨C²ÕӼơC ª`·N! Frequency ¦^¶Ç i + 1 ²Õ¡A©Ò¥ý±N MaxN - 1
Bins_array = Application.Evaluate("Row(1:" & MaxN - 1 & ")")
ArrF = Application.Frequency(ArrN, Bins_array)
' ¡õ ¼g¥X¸ê®Æ
Set WriteToRange = ActiveSheet.Cells(rN + 3, 1)
WriteToRange.CurrentRegion.ClearContents
Application.Goto Reference:=WriteToRange, scroll:=True ' ±Nµe±¤Á´«¦Ü WriteToRange¡C
With WriteToRange
.Resize([A:A].Rows.Count - rN - 3, 2) = ""
.Resize(1, 2) = Application.Evaluate("{""³sÄò¼Æ"", "";²Õ¼Æ""}")
y = 0
For i = 1 To MaxN
If ArrF(i, 1) <> 0 Then
y = y + 1
.Offset(y, 0) = i
.Offset(y, 1) = ArrF(i, 1)
End If
Next
.Offset(0, 2).Resize(dic.Count, 1) = Application.Transpose(dic.keys)
.Offset(0, 3).Resize(dic.Count, 1) = Application.Transpose(dic.items)
t2 = Timer: .Offset(y + 1, 1) = Format(t2 - t1, "0.00") & " ’"
tt2 = Time: .Offset(y + 2, 1) = Format((tt2 - tt1) * 24 * 60 * 60, "0.00") & " ’"
End With
Set Arr = Nothing ' ÄÀ©ñ°O¾ÐÅé
Set dic = Nothing
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub
' »¼°j©I¥s( recursive call )¬d¸ß¡A±N³sÄò0¼g¤J¦P¤@½s¸¹
Sub xRep(ByRef Arr, r, c, i, ByRef rng As Range)
Dim Temp As Range
Arr(r, c) = i ' ¼g¤J½s¸¹
Cells(r, c).Interior.ColorIndex = 6 ' Test Use 3
Set Temp = Union(rng, Sheets("TEST2").Cells(r, c))
On Error Resume Next ' ÁקKÃä¬É¿ù»~
If Arr(r - 1, c) = 0 Then Call xRep(Arr, r - 1, c, i, Temp) ' §ä¤W
If Arr(r + 1, c) = 0 Then Call xRep(Arr, r + 1, c, i, Temp) ' §ä¤U
If Arr(r, c - 1) = 0 Then Call xRep(Arr, r, c - 1, i, Temp) ' §ä¥ª
If Arr(r, c + 1) = 0 Then Call xRep(Arr, r, c + 1, i, Temp) ' §ä¥k
Set rng = Temp
End Sub
½Æ»s¥N½X
Åwªï¥úÁ{ ³Â»¶®a±Ú°Q½×ª©ª© (http://forum.twbts.com/)