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

¥X³f³æ«Ø¥ß

¦^´_ 27# cclo0728


    ¹B¥ÎIJµo:


Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
With Target
   If .Address = "$B$2" Then
      Call ·j´M¥X³f¸ê®Æ¨M©w³æ¸¹
      
      Cancel = True
   End If
End With
End Sub

TOP

¥»©«³Ì«á¥Ñ Andy2483 ©ó 2022-10-13 11:26 ½s¿è

¦^´_ 27# cclo0728


    «Øij«e½ú:¸ê®Æ¿é¤J·J¾ã¦Ü¥X³f¸ê®Æ()¸Ì¦h­Óµ{§Ç!
Àˬd­«½Æ!
¾Þ§@ªÌ¤£ª¾±¡¦³­«½Æ§Ç¸¹:


¥X²{´£¥Ü:


¸õ¦Ü¥X³f¸ê®Æ­«½ÆÀx¦s®æ³B


¥¿½T¤£­«½Æ§Ç¸¹:


¥¿½T·J¾ã¦Ü¥X³f¸ê®Æªí


Option Explicit
Public ERR&
Sub ¸ê®Æ¿é¤J·J¾ã¦Ü¥X³f¸ê®Æ()
Call Àˬd¥X³f¸ê®Æ_§Ç¸¹­«½Æ

If ERR = 1 Then
'¡ô¦pªG"¥X³f¸ê®Æ" ¤u§@ªí§ä¨ì¬Û¦P§Ç¸¹
   ERR = 0
   '¡ô³o­Ó¸óµ{¦¡ªºÅܼÆÂk¹s
   Exit Sub
End If
Dim Arr, T, xD, xA, xB
'¡ô«Å§iÅܼÆ

Set xD = CreateObject("Scripting.Dictionary")
'¡ô¥OxD¬O¦r¨å

Set xA = Sheets("¸ê®Æ¿é¤J")
'¡ô¥OxA¬O¤u§@ªí "¸ê®Æ¿é¤J"

Set xB = Sheets("¥X³f¸ê®Æ")
'¡ô¥OxB¬O¤u§@ªí"¥X³f¸ê®Æ"

T = xA.Cells(Rows.Count, 3).End(3).Row - 4
'¡ô¥OT¬O"¸ê®Æ¿é¤J"ªí­n±a¤J "¥X³f¸ê®Æ"ªíªº¦C¼Æ

Arr = xA.Cells(5, 2).Resize(T, 6)
'¡ô¨Ó·½ªí¸ê®Æ­Ë¤JArr°}¦C

xD(1) = Arr
'¡ôArr°}¦C­Ë¤J¦r¨å

xD(2) = xA.Cells(2, 1)
'¡ô«È¤á¦WºÙ­Ë¤J¦r¨å

xD(3) = xA.Cells(2, 2)
'¡ô³æ¸¹­Ë¤J¦r¨å

xB.Cells(Rows.Count, "C").End(3).Offset(1, 0).Resize(UBound(Arr), 6) = xD(1)
'¡ô±a¥X°}¦C©ñ¤Jµ²ªGªí

xB.Cells(Rows.Count, "A").End(3).Offset(1, 0).Resize(T, 1) = xD(2)
'¡ô±a¥X«È¤á¦WºÙ©ñ¤Jµ²ªGªí

xB.Cells(Rows.Count, "B").End(3).Offset(1, 0).Resize(T, 1) = xD(3)
'¡ô±a¥X³æ¸¹©ñ¤Jµ²ªGªí

xA.[B2].Interior.ColorIndex = 3
xA.[B2].Font.ColorIndex = 2

Sheets("¥X³f¸ê®Æ").Activate
End Sub
Sub Àˬd¥X³f¸ê®Æ_§Ç¸¹­«½Æ()
Dim xA, xB, BFind As Range
'¡ô«Å§iÅܼÆ
Set xA = [¸ê®Æ¿é¤J!B2]
'¡ô¥OxA¬O "¸ê®Æ¿é¤J" ¤u§@ªí [B2]
Set xB = [¥X³f¸ê®Æ!B:B]
'¡ô¥OxB¬O "¥X³f¸ê®Æ" ¤u§@ªí BÄæ
Set BFind = xB.Find(xA, LookAt:=xlWhole)
'¡ô´M§ä ¥X³f¸ê®Æ!B:B ¤º®e¥þ¬Û¦PÀx¦s®æ
'¡ô(xA, LookAt:=xlPart) ¬O³¡¤À¬Û¦PÀx¦s®æ
If Not BFind Is Nothing Then
'¡ô¦pªG¦³§ä¨ì
   MsgBox "¥X³f¸ê®Æ¤w¸g¦³: " & xA & " §Ç¸¹!"
   Sheets("¥X³f¸ê®Æ").Activate
   '¡ôµe­±¸õ¨ì "¥X³f¸ê®Æ" ªí
   BFind.Activate
   '¡ô¿ï¨ú§ä¨ìªº¨º­ÓÀx¦s®æ
   ERR = 1
   '¡ô¬O¤@­Ó¸óµ{¦¡ªºÅܼÆ,¦pªG§ä¨ì ¥OERR = 1
End If
End Sub

TOP

¥»©«³Ì«á¥Ñ Andy2483 ©ó 2022-10-14 08:09 ½s¿è

¦^´_ 27# cclo0728


    «e½ú¦­¦w
«á¾Ç¦­¤W½Æ²ß¤F©î¸Ñªø§Ç¸¹¼W¥[¨âÄæ©ñ¤J¤é´Á»Pµu§Ç¸¹
½m²ß°}¦C
´£¨Ñ«e½ú°Ñ¦Ò!
­ì¥X³f¸ê®Æªø§Ç¸¹¿z¿ï:


°õ¦æµ{¦¡«á²£¥Í·sÀÉ®×¥i¿z¿ï¤é´Á:


·sÀÉ®×¥i¿z¿ïµu§Ç¸¹:


¥H¤U½Æ²ßªºµ{¦¡½X¨Ñ°Ñ¦Ò:
Option Explicit
Sub ªø§Ç¸¹Âà_¤é´Á_µu§Ç¸¹()
Dim Arr, i&, xB, N&, D1 As Date
'¡ô«Å§iÅܼÆ:D1 ¬O¤é´Á,N¬O¼Æ¦r

Set xB = Sheets("¥X³f¸ê®Æ")
'¡ô¥OxB¬O "¥X³f¸ê®Æ" ¤u§@ªí

Arr = xB.Range(xB.[J1], Cells(xB.UsedRange.EntireRow.Count, 1))
'¡ô¥OArr¬O"¥X³f¸ê®Æ" ¤u§@ªí A:GÄ椧¶¡¦³¨Ï¥Î¦Cªº°Ï°ìÀx¦s®æ­È

For i = 2 To UBound(Arr)
'¡ô³]°j°é©î¸ÑBÄ檺ªø§Ç¸¹

   D1 = "20" & Mid(Arr(i, 2), 1, 2) & "/" & Mid(Arr(i, 2), 3, 2) & "/" & Mid(Arr(i, 2), 5, 2)
   '¡ô "20",¥[ªø§Ç¸¹²Ä1­Ó¦r¶}©l¨ú¨â¦r¤¸="22"
   ',¦A¥[ªø§Ç¸¹²Ä3­Ó¦r¶}©l¨ú¨â¦r¤¸="10"
   ',¦A¥[ªø§Ç¸¹²Ä5­Ó¦r¶}©l¨ú¨â¦r¤¸="08"
   'D1="2022/10/08"¦r¦êÂà¤Æ¬°¤é´Á,¦]D1«Å§i¬°¤é´Á

   
   Arr(i, 9) = D1
   '¡ô§âD1¤é´Á©ñ¤JArrªº²Ä9Äæ¦ì¸m
   
   N = Right(Arr(i, 2), 3)
  '¡ô¥ON¬O±`§Ç¸¹ªº¥kÃä3­Ó¦r¤¸¦r¦êÂà¼Æ¦r,¦]N«Å§i¬°¼Æ¦r
   
   Arr(i, 10) = N
   '¡ô§âN¼Æ¦r©ñ¤JArrªº²Ä10Äæ¦ì¸m
   
Next
Workbooks.Add
'¡ô¶}¤@­Ó·sªºÀÉ®×

[A1].Resize(UBound(Arr), 10) = Arr
'¡ô§âArr°}¦Cªº¸ê®Æ±q[A1]¶}©l­Ë¤J·s¤u§@ªíªº¦s®æ

[I1] = "¥X³f¤é´Á"
[J1] = "·í¤é§Ç¸¹"
Cells.Columns.AutoFit
'¡ô¦Û°Ê½Õ¾ãÄæ¼e

Cells.Rows.AutoFit
'¡ô¦Û°Ê½Õ¾ã¦C°ª

[2:2].Select
ActiveWindow.FreezePanes = True
'¡ô²Ä¤G¦C¥H¤WÀx¦s®æ­áµ²µ¡®æ

[A1].Select
[A1].AutoFilter
'¡ô³]©w¿z¿ï

Cells.Borders.LineStyle = xlContinuous
'¡ôÅã¥Ü®æ½u
End Sub

TOP

¦U¦ì«e½ú¦n
¤µ¤Ñ«á¾Ç½m²ß¥H¦r¨å»P°}¦C°µ²Î­p,¨Ã¤gªk·Ò¿û²£¥Í¹Ïªí
½Ð¦U¦ì«e½ú«ü¥¿¨Ã«ü¾É

­ì©l¸ê®Æ:


²£¥Í·sÀɮ׹Ϫí:


Option Explicit
Sub «È¤á¥X³fª÷ÃB_²Î­p¹Ïªí()
Application.ScreenUpdating = False
'¡ô°õ¦æ®É¿Ã¹õµe­±¤£­n¸òµÛÅÜ°Ê

Dim Yrr, i&, xD, Arr, Brr, d
'¡ô«Å§iÅܼÆ

Set xD = CreateObject("Scripting.Dictionary")
'¡ô¥OxD¬O¦r¨å

Yrr = [¥X³f¸ê®Æ!A1].CurrentRegion.Offset(1, 0)
'¡ô¥O "¥X³f¸ê®Æªí"([A1]¬Û¾F«DªÅ®æ©Ò¦ê³s°_¨ÓªºÀx¦s®æ,
'ÂX®i¨ì¤è¥¿°Ï°ìªº³Ì¤p½d³ò,©¹¤U°¾²¾¤@¦C )­È¬O°}¦C Yrr


For i = 1 To UBound(Yrr)
'¡ô³]°j°é±N«È¤á¦W§Q¥Î¦r¨å¥h°£­«½Æ¨Ã²Ö¥[ GÄ檺ª÷ÃB
   If Yrr(i, 1) <> "" Then
      d = Yrr(i, 1)
      xD(d) = xD(d) + Yrr(i, 7)
   End If
Next

Arr = Application.Transpose(xD.keys)
'¡ô¥OArr ¬O¦r¨åkeyÂà¸m¤§«áªº¤Gºû°}¦C

Brr = Application.Transpose(xD.Items)
'¡ô¥OBrr ¬O¦r¨åItemÂà¸m¤§«áªº¤Gºû°}¦C

Workbooks.Add
'¡ô¶}±Ò¤@­Ó·sÀÉ®×

[A1] = "«È¤á"
[B1] = "¥X³fª÷ÃB²Î­p(NT)"
[A2].Resize(UBound(Arr), 1) = Arr
'¡ô±N Arr°}¦C±q[A2]¶K¤J­È

[B2].Resize(UBound(Brr), 1) = Brr
'¡ô±N Brr°}¦C±q[B2]¶K¤J­È

[A1].CurrentRegion.Sort _
KEY1:=[B1], Order1:=xlDescending, Header:=xlYes
'¡ô¸ê®Æ¦³©ïÀY¦Cªºº¥´î±Æ§Ç

ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xlColumnClustered
ActiveChart.SetSourceData Source:=Range([A1], Cells([A65536].End(xlUp).Row, "B"))
With ActiveSheet.Shapes("¹Ïªí 1")
   .ScaleWidth 1.5, msoFalse, msoScaleFromBottomRight
   .ScaleWidth 1, msoFalse, msoScaleFromTopLeft
   .ScaleHeight 1.5, msoFalse, msoScaleFromTopLeft
   .IncrementLeft -500
   .IncrementTop -500
End With
[A1].Activate
ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xlPieExploded
ActiveChart.SetSourceData Source:=Range([A1], Cells([A65536].End(xlUp).Row, "B"))
With ActiveSheet.Shapes("¹Ïªí 2")
   .ScaleWidth 1.5, msoFalse, msoScaleFromBottomRight
   .ScaleWidth 1, msoFalse, msoScaleFromTopLeft
   .ScaleHeight 1.5, msoFalse, msoScaleFromTopLeft
   .IncrementLeft -500
   .IncrementTop -500
   .IncrementTop 400
End With
ActiveSheet.ChartObjects("¹Ïªí 2").Activate
ActiveChart.SeriesCollection(1).Select
ActiveChart.SeriesCollection(1).ApplyDataLabels
ActiveChart.SeriesCollection(1).DataLabels.Select
Selection.ShowPercentage = True
Selection.Position = xlLabelPositionOutsideEnd
'¡ô¿ý»s¥¨¶°´N¥i¥H²£¥Í³o¨â­Ó¹Ïªí!µø»Ý¨D½Õ¾ã!

[A1].Activate
Set xD = Nothing
Set Arr = Nothing
Set Brr = Nothing
End Sub

TOP

¥»©«³Ì«á¥Ñ Andy2483 ©ó 2022-10-17 08:13 ½s¿è

¦U¦ì«e½ú¦n
¤µ¤Ñ¹B¥Î¦¹½d¨Ò¾ã²z¤F:
1.¸ê®Æªí¬Ý¨ì­þ¸Ì!·Æ¹«¥ªÁä§Ö«ö¨â¤U´N¿z¿ï
2.©ïÀY¦C®æ§Ö«ö¨â¤U´N¥þ³¡Åã¥Ü

¿z¿ï«eºu°Ê¨÷¶bÀH¾÷¬d¬Ý¸ê®Æ:


¬Ý¨ì·Q¿z¿ïªºÃöÁä¦r!´N¥ªÁä§ÖÀ»¨â¦¸


¥ªÁä§ÖÀ»¨â¦¸«áªºµ²ªG:


·Q§Ö³t¥þ³¡Åã¥Ü!´N«ö©ïÀY¦CA1Àx¦s®æ:


¥H¤Uµ{¦¡½X¤ß±oµù¸Ñ¨Ñ°Ñ¦Ò,½Ð¦U¦ì«e½ú¥u¥¿¨Ã«ü¾É!

Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim V$
With Target
'¡ô¥H¤U¬O¦³Ãö©ó¥ªÁäÂùÀ»¨Æ¥óªºµ{§Ç

   If .Address = "$A$1" Then
   '¡ô¦pªG¥ªÁäÂùÀ»ªº¦ì§}¬O "$A$1"
   
      If ActiveSheet.AutoFilter Is Nothing Then
      '¡ô¦pªG¤u§@ªí¨S¦³¨Ï¥Î¿z¿ï
      
         [A1].AutoFilter
         '¡ô¥O [A1]¬Û¾F«DªÅ®æ©Ò¦ê³s°_¨ÓªºÀx¦s®æ,ÂX®i¨ì¤è¥¿°Ï°ìªº³Ì¤p½d³ò
         ',ªº²Ä¤@¦C³]©w¿z¿ï

         
         Else
         '¡ô§_«h ¦pªG¤u§@ªí¦³¨Ï¥Î¿z¿ï
         
            If ActiveSheet.FilterMode = True Then ActiveSheet.ShowAllData
            '¡ô¦pªG¤u§@ªí¬O¦b¿z¿ï¤¤! ´NÅã¥Ü¥þ³¡¸ê®Æ
            
      End If
      Cancel = True
   End If
   If .Column = [A1].Column And .Row > 1 Then
   '¡ô¦pªG¥ªÁäÂùÀ»¬O AÄæ ¦Ó¥B¬O¤j©ó²Ä¤@¦C
   
      V = Trim(.Value)
      '¡ô¥OV¥ªÁäÂùÀ»®æ¸ÌÀY§À¥hªÅ¥Õ¦r¤¸ªº¦r¦ê
      
      If Trim(.Value) = "" Then
      '¡ô¦pªG¥ªÁäÂùÀ»®æªº­È(¥h°£ÀY§ÀªºªÅ¥Õ¦r¤¸)¤§«á,¬OªÅ¦r¤¸
        
         Cancel = True
         '¡ô¨ú®ø¨Æ¥óªº°õ¦æ
         
         Exit Sub
         '¡ôµ²§ô¦¹µ{¦¡°õ¦æ
         
      End If
      If ActiveSheet.AutoFilter Is Nothing Then
      '¡ô¦pªG¤u§@ªí¨S¦³¨Ï¥Î¿z¿ï
      
         [A1].AutoFilter
         '¡ô¥O [A1]¬Û¾F«DªÅ®æ©Ò¦ê³s°_¨ÓªºÀx¦s®æ,ÂX®i¨ì¤è¥¿°Ï°ìªº³Ì¤p½d³ò
         ',ªº²Ä¤@¦C³]©w¿z¿ï
         
         Else
         '¡ô§_«h ¦pªG¤u§@ªí¦³¨Ï¥Î¿z¿ï
         
            If ActiveSheet.FilterMode = True Then ActiveSheet.ShowAllData
            '¡ô¦pªG¤u§@ªí¬O¦b¿z¿ï¤¤! ´NÅã¥Ü¥þ³¡¸ê®Æ
            
      End If
      Selection.AutoFilter Field:=1, Criteria1:=V
      '¡ô²Ä¤@Äæ°õ¦æ¿z¿ï!¿z¿ïªºÃöÁä¦r´N¬OÂùÀ»³o®æªº¥hÀY¥h§À¦r¦ê
      
      ActiveWindow.ScrollColumn = 1
      '¡ô¿Ã¹õµe­±±²¨ì³Ì¥ªÃä
      
      'ActiveWindow.ScrollRow = 1
      '¡ô¿Ã¹õµe­±±²¨ì³Ì¤W­±
      
      Cancel = True
      '¡ô¨ú®ø¨Æ¥óªº°õ¦æ
      
   End If
End With
End Sub

TOP

¦^´_ 33# cclo0728
ÁÂÁ«e½ú¦^ÂÐ
¾Ç²ß¬O¤@¥ó«Ü¦³·N«äªº¨Æ
http://forum.twbts.com/thread-387-1-1.html
¥H¤W³o©«¾Ç²ß¨ìªº¤èªkÀ³¥Î¦b«e½úªº½d¨Ò¤W:
test_1_20221021.zip (61.49 KB)

¦pªG«ö¶s¦h¤F!¥i¥H¥Îµæ³æ«ö¶s³B²z¤@¤U!


«ö¶s«á:

TOP

¾Ç²ß¨ì¤F!À³¥Î¤W¤F!¯d¤U¨¬¸ñ!ÁÙ·í§@°µµ§°O!
¦h¦~¥H«á¦A¦^¨Ó³o©«¬Ý¬Ý¦Û¤v¾Çªº¤Ó¤Ö!
·s¼W¥\¯à«ö¶s:


µ²ªG1:


µ²ªG2,3:

TOP

¦U¦ì«e½ú¦­¦w
¤µ¦­±N²Î­p¹Ïªí»P¤ÀÃþ·J¾ã¥[¤J¤F¤é´Á°Ï¶¡ªº³]©w¥\¯à!
½Ð¦U¦ì«e½ú¤£§[«ü±Ð!
test_1_20221026_1.zip (72.46 KB)

1.¥i¦b¬õ¦â®Ø³B¶ñ¤J¤é´Á
2.¦pªG°_©l¤é¨S¶ñ!§ì¸ê®Æ³Ì¤p¤é´Á
3.¦pªGµ²§ô¤é¨S¶ñ!§ì¸ê®Æ³Ì¤j¤é´Á
4.³£¨S¶ñ!¦U§ì¸ê®Æ³Ì¤p¤é´Á&§ì¸ê®Æ³Ì¤j¤é´Á

TOP

¹ÏªíÅܧó¦p¤U:



·J¾ã¤ÀÃþÅܧó¦p¤U:


TOP

¥D­nµ{¦¡½XÅܧó¦p¤U:
Option Explicit
Public Dats As Date, Datn As Date, AC_WO_NA
'¡ô³]¬°¥þ°ìÅܼÆ!µ¹¦U¹B¥Î¦¹°Æµ{¦¡ªº¥Dµ{¦¡¹B¥Î
Sub ªø§Ç¸¹Âà_¤é´Á_µu§Ç¸¹()
Dim Arr, i&, xB, N&, D1 As Date, TTT
'¡ô«Å§iÅܼÆ:D1 ¬O¤é´Á,N¬O¼Æ¦r
Set xB = Sheets("¥X³f¸ê®Æ")
'¡ô¥OxB¬O "¥X³f¸ê®Æ" ¤u§@ªí
Dats = 0
'¡ô°_©l¤éÂk¹s
Datn = 0
'¡ôµ²§ô¤éÂk¹s
If IsDate(xB.[I1]) Then
'¡ô¦pªG ¥X³f¸ê®Æªíªº[I1]¬O¤é´Á
   Dats = xB.[I1]
   '¡ô°_©l¤é´N¸Ë¤J³o¤é´Á
End If
If IsDate(xB.[J1]) Then
'¡ô¦pªG ¥X³f¸ê®Æªíªº[J1]¬O¤é´Á
   Datn = xB.[J1]
   '¡ôµ²§ô¤é´N¸Ë¤J³o¤é´Á
End If
Arr = xB.Range(xB.[J1], Cells(xB.UsedRange.EntireRow.Count, 1))
'¡ô¥OArr¬O"¥X³f¸ê®Æ" ¤u§@ªí A:GÄ椧¶¡¦³¨Ï¥Î¦Cªº°Ï°ìÀx¦s®æ­È
For i = 2 To UBound(Arr)
'¡ô³]°j°é©î¸ÑBÄ檺ªø§Ç¸¹
   D1 = "20" & Mid(Arr(i, 2), 1, 2) & "/" & Mid(Arr(i, 2), 3, 2) & "/" & Mid(Arr(i, 2), 5, 2)
   '¡ô "20",¥[ªø§Ç¸¹²Ä1­Ó¦r¶}©l¨ú¨â¦r¤¸="22"
   ',¦A¥[ªø§Ç¸¹²Ä3­Ó¦r¶}©l¨ú¨â¦r¤¸="10"
   ',¦A¥[ªø§Ç¸¹²Ä5­Ó¦r¶}©l¨ú¨â¦r¤¸="08"
   'D1="2022/10/08"¦r¦êÂà¤Æ¬°¤é´Á,¦]D1«Å§i¬°¤é´Á
   Arr(i, 9) = D1
   '¡ô§âD1¤é´Á©ñ¤JArrªº²Ä9Äæ¦ì¸m
   N = Right(Arr(i, 2), 3)
   '¡ô¥ON¬O±`§Ç¸¹ªº¥kÃä3­Ó¦r¤¸¦r¦êÂà¼Æ¦r,¦]N«Å§i¬°¼Æ¦r
   Arr(i, 10) = N
   '¡ô§âN¼Æ¦r©ñ¤JArrªº²Ä10Äæ¦ì¸m
Next
Workbooks.Add
'¡ô¶}¤@­Ó·sªºÀÉ®×
AC_WO_NA = ActiveWorkbook.Name
Sheets(1).Name = "¥X³f¸ê®Æ"
[A1].Resize(UBound(Arr), 10) = Arr
'¡ô§âArr°}¦Cªº¸ê®Æ±q[A1]¶}©l­Ë¤J·s¤u§@ªíªº¦s®æ
If Datn = 0 Then
'¡ô¦pªGµ²§ô¤é¬OÂk¹sª¬ºA?
   Datn = CDate(WorksheetFunction.Max([I:I]))
   '¡ô±ø¥ó¦¨¥ß!´N§ì[I:I]¸Ìªº³Ì¤j¤é´Á¸Ë¶iµ²§ô¤é
End If
If Dats = 0 Then
'¡ô¦pªG°_©l¤é¬OÂk¹sª¬ºA?
   Dats = CDate(WorksheetFunction.Min([I:I]))
   '¡ô±ø¥ó¦¨¥ß!´N§ì[I:I]¸Ìªº³Ì¤p¤é´Á¸Ë¶i¶}©l¤é
End If
[I1] = "¥X³f¤é´Á"
[J1] = "·í¤é§Ç¸¹"
Cells.Columns.AutoFit
'¡ô¦Û°Ê½Õ¾ãÄæ¼e
Cells.Rows.AutoFit
'¡ô¦Û°Ê½Õ¾ã¦C°ª
[2:2].Select
ActiveWindow.FreezePanes = True
'¡ô²Ä¤G¦C¥H¤WÀx¦s®æ­áµ²µ¡®æ
[A1].Select
[A1].AutoFilter
'¡ô³]©w¿z¿ï
Cells.Borders.LineStyle = xlContinuous
'¡ôÅã¥Ü®æ½u
End Sub

Option Explicit
Sub «È¤á¥X³fª÷ÃB_²Î­p¹Ïªí()
Application.ScreenUpdating = False
'¡ô°õ¦æ®É¿Ã¹õµe­±¤£­n¸òµÛÅÜ°Ê
Call ªø§Ç¸¹Âà_¤é´Á_µu§Ç¸¹

Dim Yrr, i&, xD, Arr, Brr, d, c, R
'¡ô«Å§iÅܼÆ
Set xD = CreateObject("Scripting.Dictionary")
'¡ô¥OxD¬O¦r¨å
Set Yrr = [¥X³f¸ê®Æ!A1].CurrentRegion
'¡ô¥O Yrr¬O [A1]¬Û¾F«DªÅ®æ©Ò¦ê³s°_¨ÓªºÀx¦s®æ,ÂX®i¨ì¤è¥¿°Ï°ìªº³Ì¤p½d³òÀx¦s®æ
c = [¥X³f¸ê®Æ!A1].End(xlToRight).Column
'¡ô¥OC¬O¦¹ªíªºÄæ¼Æ
R = [¥X³f¸ê®Æ!A1].End(xlDown).Row
'¡ô¥OR¬O¦¹ªíªº¦C¼Æ
For i = 2 To R
'¡ô³]°j°é±N«È¤á¦W§Q¥Î¦r¨å¥h°£­«½Æ¨Ã²Ö¥[ GÄ檺ª÷ÃB
   If Yrr(i, 9) < Dats Or Yrr(i, 9) > Datn Then
   '¡ô¦pªG IÄæ¤é´Á¬O¤p©ó¶}©l¤é ©Î IÄæ¤é´Á¬O¤j©óµ²§ô¤é?
      GoTo 999
      '¡ô±ø¥ó¦¨¥ß!´N¸õ¨ì 999ªº¦ì¸mÄ~Äò°õ¦æ!
   End If
   If Yrr(i, 1) <> "" Then
      d = Yrr(i, 1)
      xD(d) = xD(d) + Yrr(i, 7)
   End If
   
999
Next
Arr = Application.Transpose(xD.KEYS)
'¡ô¥OArr ¬O¦r¨åkeyÂà¸m¤§«áªº¤Gºû°}¦C
Brr = Application.Transpose(xD.Items)
'¡ô¥OBrr ¬O¦r¨åItemÂà¸m¤§«áªº¤Gºû°}¦C
Workbooks.Add
'¡ô¶}±Ò¤@­Ó·sÀÉ®×
[A1] = "«È¤á"
[B1] = "¥X³fª÷ÃB²Î­p(NT)/²Î­p°Ï¶¡(" & Dats & "~" & Datn & ")"
'¡ô¹Ïªí¼ÐÃD¥[¤J¾ã²z¤é´Á°Ï¶¡
[A2].Resize(UBound(Arr), 1) = Arr
'¡ô±N Arr°}¦C±q[A2]¶K¤J­È
[B2].Resize(UBound(Brr), 1) = Brr
'¡ô±N Brr°}¦C±q[B2]¶K¤J­È
[A1].CurrentRegion.Sort _
KEY1:=[B1], Order1:=xlDescending, Header:=xlYes
'¡ô¸ê®Æ¦³©ïÀY¦Cªºº¥´î±Æ§Ç
ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xlColumnClustered
ActiveChart.SetSourceData Source:=Range([A1], Cells([A65536].End(xlUp).Row, "B"))
With ActiveSheet.Shapes("¹Ïªí 1")
   .ScaleWidth 1.5, msoFalse, msoScaleFromBottomRight
   .ScaleWidth 1, msoFalse, msoScaleFromTopLeft
   .ScaleHeight 1.5, msoFalse, msoScaleFromTopLeft
   .IncrementLeft -500
   .IncrementTop -500
End With
[A1].Activate
ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xlPieExploded
ActiveChart.SetSourceData Source:=Range([A1], Cells([A65536].End(xlUp).Row, "B"))
With ActiveSheet.Shapes("¹Ïªí 2")
   .ScaleWidth 1.5, msoFalse, msoScaleFromBottomRight
   .ScaleWidth 1, msoFalse, msoScaleFromTopLeft
   .ScaleHeight 1.5, msoFalse, msoScaleFromTopLeft
   .IncrementLeft -500
   .IncrementTop -500
   .IncrementTop 400
End With
ActiveSheet.ChartObjects("¹Ïªí 2").Activate
ActiveChart.SeriesCollection(1).Select
ActiveChart.SeriesCollection(1).ApplyDataLabels
ActiveChart.SeriesCollection(1).DataLabels.Select
Selection.ShowPercentage = True
Selection.Position = xlLabelPositionOutsideEnd
'¡ô¿ý»s¥¨¶°´N¥i¥H²£¥Í³o¨â­Ó¹Ïªí!µø»Ý¨D½Õ¾ã!
[A1].Activate
Workbooks(AC_WO_NA).Close False
Set xD = Nothing
Set Arr = Nothing
Set Brr = Nothing
End Sub

TOP

        ÀR«ä¦Û¦b : ¤Ñ¤W³Ì¬ü¬O¬P¬P¡A¤H¥Í³Ì¬ü¬O·Å±¡¡C
ªð¦^¦Cªí ¤W¤@¥DÃD