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

¯S©w´Á¶¡¸óªí¥[Á`

¯S©w´Á¶¡¸óªí¥[Á`

·í"³øªí¦C¦L"¤u§@ªíB1¿é¤J¾P±b°_¤é(2014/05/01)¡FB2¿é¤J¾P±b¨´¤é(2014/05/31)¡A
°ÝÃD¤@¡G
A3Åã¥Ü¡G¥xÆW¤À¤½¥q¡@¾P±b¤é¡G  2014/5/1 ~  2014/5/31 «D°O¤í¥U³ø¼Æ
°ÝÃD¤G¡G   
C7¡GF12¥h§ì¨ú"Á`ªí"¤u§@ªíAÄ椺²Å¦X¤é´Á¤§©Ò¹ïÀ³ªºBÄæ¦ÜYÄæ
PS.»¡©ú¡GC7Àx¦s®æ¡A¡i¤¤«H¡j"³øªí½s¸¹"§e²{¤è¦¡¡G1030501~1030525
°ÝÃD¤T¡G
­Y¥u¿é¤J¾P±b°_¤é¡A¤]´N¬O¥u¿é¤JB1(2014/05/01)¡AB2¤£¿é¤J¡A¦ÓA3§Æ±æÅã¥Ü¡G¥xÆW¤À¤½¥q¡@¾P±b¤é¡G  2014/5/1¡@«D°O¤í¥U³ø¼Æ

103¦~«×«D°O¤í.zip (40.45 KB)

joyce

¦^´_ 1# leiru
¤½¦¡§Ú¤£¤Ó·|,
VBA¸Õ¸Õ¬Ý:
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2.     Dim sh, sh2 As Worksheet
  3.     Dim Rng As Range
  4.     Dim i, lastRow As Integer
  5.     Set sh = Sheets("³øªí¦C¦L")
  6.     Set sh2 = Sheets("Á`ªí")
  7.     Set Rng = sh.Range("B1:B2")
  8.     If Not Intersect(Target, Rng) Is Nothing Then    '­­©wIJ°Ê Worksheet_Change ªº½d³ò¬° sh.Range("B1:B2")
  9.         If sh.[B1] = "" Then     '¦pªG ¾P±b°_¤é¬OªÅ¥Õ,
  10.             Exit Sub             '«h¸õÂ÷
  11.         ElseIf sh.[B2] <> "" And sh.[B2] < sh.[B1] Then    '¦pªG ¾P±b°_¡B¨´¤é§¡¤£¬OªÅ¥Õ, ¦ý¾P±b°_¤é¤j©ó¾P±b¨´¤é,
  12.             MsgBox "¾P±b°_¤éÀ³¤p©ó¾P±b¨´¤é" & Chr(10) & "½Ð¬d©ú¦A§@!!", vbCritical   '«h¥Üĵ,
  13.             Exit Sub                                                                 '¦A¸õÂ÷
  14.         End If
  15.    
  16.         sh.[C7].Resize(6, 4) = ""
  17.         With sh2
  18.            '¤U¦C10¦C, ¥u¦³¸ê®Æ¶Ã±¼®É, ¤~»Ý¦A°õ¦æ¤@¦¸
  19.            '.[BG6] = "=MATCH(³øªí¦C¦L!B1,yy,0)"   '¾P±b°_¤é ¦b"Á`ªí"ªº¦C¸¹
  20.            '.[BG7] = "=MATCH(³øªí¦C¦L!B2,yy,0)"   '¾P±b¨´¤é ¦b"Á`ªí"ªº¦C¸¹
  21.            '.[BJ1] = "=SUM(BJ3:BJ368)"            'µ§¼Æ¥[Á`
  22.            '.[BK1] = "=SUM(BK3:BK368)"            'µo²¼ª÷ÃB¥[Á`
  23.            '.[BL1] = "=SUM(BL3:BL368)"            '¤âÄò¶O¥[Á`
  24.            '.[B2:E2].Copy .[BB2]                  '¶i¶¥¿z¿ï·Ç«h ªº¼ÐÃD
  25.            '.[B2].Copy .[BG2]
  26.            '.[BG3] = "<>"                         '¶i¶¥¿z¿ï·Ç«h¡÷¥h°£ ³øªí½s¸¹ ¬OªÅ¥ÕªºÀx¦s®æ
  27.            'sh.[E13].Resize(6, 4) = "=SUM(E7:E12)"
  28.            'sh.[F13].Resize(6, 4) = "=SUM(F7:F10,F12)"
  29.       
  30.             If sh.[B2] <> "" Then   '¦pªG ¾P±b¨´¤é ¤£¬OªÅ¥Õ
  31.                 sh.[A3] = "=""¥xÆW¤À¤½¥q¡@¾P±b¤é¡G ""&TEXT($B1, ""yyyy/mm/dd"")&"" ~ ""&TEXT($B2, ""yyyy/mm/dd"")&"" «D°O¤í¥U³ø¼Æ"""
  32.                 .[BB3].Resize(400, 4) = ""
  33.                 For i = 0 To 5
  34.                     .[BI3].Resize(400, 4) = ""
  35.                     .Cells(.[BG6], 1).Offset(0, i * 4 + 1).Resize(.[BG7] - .[BG6] + 1, 4).Copy .[BB3]    '±N±ý¿z¿ï½d³ò ½Æ»s¨ì¿z¿ïªí
  36.                     '¥h°£ªÅ¦C¤§¶i¶¥¿z¿ï
  37.                     .[BB2].Resize(.[BG7] - .[BG6] + 2, 4).AdvancedFilter Action:=xlFilterCopy, _
  38.                              CriteriaRange:=.Range("BG2:BG3"), CopyToRange:=.Range("BI2:BL2"), Unique:=True
  39.                     If .[BI3] = "" Then
  40.                         sh.Cells(i + 7, 3).Resize(1, 4) = "'-"
  41.                     Else
  42.                         lastRow = .[BI200].End(xlUp).Row
  43.                         sh.Cells(i + 7, 3).FormulaR1C1 = "=Á`ªí!R3C61 & ""~"" & Á`ªí!R" & lastRow & "C61"  '³øªí½s¸¹
  44.                         sh.Cells(i + 7, 3).Copy
  45.                         sh.Cells(i + 7, 3).PasteSpecial Paste:=xlPasteValues   '±N¤½¦¡Âন­È
  46.                         .[BJ1].Resize(1, 3).Copy
  47.                         sh.Cells(i + 7, 4).PasteSpecial Paste:=xlPasteValues   '¶K¤W µ§¼Æ¥[Á`¡Bµo²¼¥[Á`¡B¤âÄò¶O¥[Á`
  48.                     End If
  49.                 Next
  50.             Else                 '§_«h, ¾P±b¨´¤é ¬OªÅ¥Õ
  51.                 sh.[A3] = "=""¥xÆW¤À¤½¥q¡@¾P±b¤é¡G ""&TEXT($B1, ""yyyy/mm/dd"")&"" ~  «D°O¤í¥U³ø¼Æ"""
  52.                 For i = 0 To 5
  53.                     If .Cells(.[BG6], 1).Offset(0, i * 4 + 1) = "" Then
  54.                         sh.Cells(i + 7, 3).Resize(1, 4) = "'-"
  55.                     Else
  56.                         .Cells(.[BG6], 1).Offset(0, i * 4 + 1).Resize(1, 4).Copy
  57.                         sh.Cells(i + 7, 3).PasteSpecial Paste:=xlPasteValues
  58.                     End If
  59.                 Next
  60.             End If
  61.         End With
  62.         sh.[B1].Select
  63.     End If
  64. End Sub
½Æ»s¥N½X

TOP

        ÀR«ä¦Û¦b : §Ú­Ì³Ì¤jªº¼Ä¤H¤£¬O§O¤H¡D¥i¯à¬O¦Û¤v¡C
ªð¦^¦Cªí ¤W¤@¥DÃD