- ©«¤l
- 5923
- ¥DÃD
- 13
- ºëµØ
- 1
- ¿n¤À
- 5986
- ÂI¦W
- 0
- §@·~¨t²Î
- win10
- ³nÅ骩¥»
- Office 2010
- ¾\ŪÅv
- 150
- ©Ê§O
- ¨k
- ¨Ó¦Û
- ¥xÆW°ò¶©
- µù¥U®É¶¡
- 2010-5-1
- ³Ì«áµn¿ý
- 2022-1-23
        
|
¥»©«³Ì«á¥Ñ GBKEE ©ó 2016-1-1 10:16 ½s¿è
¦^´_ 12# yen956
vbaªº»¡©ú- Dictionary ª«¥ó
- ª«¥ó¡A¥Î©óÀx¦s¸ê®ÆÃöÁä¦r©M¶µ¥Ø¹ï¡C
- »yªk
- Scripting.Dictionary
- ½Ðª`·N
- Dictionary ª«¥ó»P PERL ¬ÛÃö°}¦C¥þµ¥¡C¥i¥H¬O¥ô¦ó«¬¦¡ªº¸ê®Æªº¶µ¥Ø³QÀx¦s¦b°}¦C¤¤¡C¨CÓ¶µ¥Ø³£»P¤@Ӱߤ@ªºÃöÁä¦r¬ÛÃö¡C¸ÓÃöÁä¦r¥Î¨Ó¨ú¥X³æÓ¶µ¥Ø¡A³q±`¬O¾ã¼Æ©Î¦r¦ê¡A¥i¥H¬O°£°}¦C¥~ªº¥ô¦ó«¬ºA¡C
- ¤U±ªºµ{¦¡½XÁ|¨Ò»¡©ú¤F¦p¦ó«Ø¥ß¤@Ó Dictionary ª«¥ó¡G
- Dim d '«Ø¥ß¤@ÓÅܼÆ
- Set d = CreateObject(Scripting.Dictionary)
- d.Add "a", "Athens" '¥[¤J¤@¨ÇÃöÁä¦r©M¶µ¥Ø
- d.Add "b", "Belgrade"
- d.Add "c", "Cairo"
½Æ»s¥N½X 9#ªþÀɪºµ{¦¡½X¸Õ¸Õ¬Ý- Option Explicit
- Sub Ex()
- Dim d As Object, E As Variant, AR(1 To 3), i As Integer
- Dim Rng As Range, AX(), M As Variant
- Set d = CreateObject("SCRIPTING.DICTIONARY")
- '¤u§@ªí1-> ¤u§@ªí3 '¥X²{¾÷²v¬°80%ªº¦r¥À*****
- For i = 1 To 3 '"¤u§@ªí1"->"¤u§@ªí3" ¦b¬¡¶Ã¯¤Wªº Index
- MsgBox Sheets(i).Name '¥iµù¸Ñ±¼
- With Sheets(i).Range("B:B").SpecialCells(xlCellTypeConstants).Offset(, 1)
- .Cells = "=COUNTIF(C2,RC[-1])/COUNTA(C1)" 'Àx¦s®æ¼g¤W¤½¦¡
- AR(i) = Application.WorksheetFunction.Transpose(.Offset(, -1).Resize(, 2).Value)
- 'AR(i) ¾É¤J^¤å¦r¥À¥X²{¦Ê¤À¤ñ¾÷²v
- For Each E In .Cells
- If E >= 0.8 Then d(E.Offset(, -1).Value) = ""
- Next
- .Cells = .Value '¤½¦¡ÂରÈ
- .NumberFormatLocal = "0%" '¼Æ¦r®æ¦¡¤Æ
- .Cells.Offset(, 1) = ""
- If d.Count >= 1 Then
- .Cells(1).Range("B1").Resize(d.Count) = Application.WorksheetFunction.Transpose(d.keys)
- End If
- End With
- d.RemoveAll
- Next
-
- '***¤u§@ªí4 ¤WBÄæ¦ì¤¤¡A¨CÓ^¤å¦r¥À¥X²{¦b«ü©w¤u§@ªíªº¤ñ²v***
- Set Rng = Sheets("¤u§@ªí4").Range("A1")
- i = 0
- Do Until Rng Is Nothing
- AX = AR(Sheets(Rng.Value).Index) '"¤u§@ªí1"->"¤u§@ªí3" ¦b¬¡¶Ã¯¤Wªº Index
- 'AR(Sheets(Rng.Value).Index) ¾É¥X¦UÓ¤u§@ªí¤W^¤å¦r¥Àªº¾÷²v
- M = Application.Match(Rng.Offset(i, 1), Application.Index(AX, 1), 0)
- 'Application.Match ¤u§@ªí¨ç¼Æ
- With Rng.Offset(i, 2) 'CÄæ
- If Not IsError(M) Then
- .Cells = AX(2, M)
- Else
- .Cells = 0
- End If
- .NumberFormatLocal = "0%"
- End With
- i = i + 1
- If Rng.Offset(i) <> "" Then '¤U¤@Ó¤u§@ªí
- Set Rng = Rng.Offset(i)
- i = 0
- ElseIf Rng.Offset(i, 1) = "" Then '¨S¦³¦r¦ê
- Set Rng = Nothing 'Â÷¶}°j°éªº±ø¥ó
- End If
- Loop
- End Sub
½Æ»s¥N½X |
|