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

[¨D§U] ½Ð°ª¤â¨D§U¡A¦p¦ó¥Îvba¬d§ä¸ê®Æ®w¤¤ªº¸ê®Æ°O¿ý¡H

¦^´_ 2# maiko
  1. Sub Search_Data()
  2. d = [A2]
  3. [A2] = IIf([A2] >= 1 And [A2] <= 12, "=MONTH(Sheet2!A2)=" & d, IIf(d = "", "", "=YEAR(Sheet2!A2)=" & d))
  4. [A1] = IIf([A2] <> "", "", "¤é´Á")
  5. With Sheet2
  6. .Range("A1").CurrentRegion.AdvancedFilter xlFilterCopy, Sheet1.[A1:C2], Sheet1.[A6:D6], False
  7. End With
  8. Cells(Rows.Count, 3).End(xlUp).Offset(2).Resize(, 2) = Array("Á`¦@:", "=SUM(R7C:R[-1]C)")
  9. [A2] = d
  10. [A1] = "¤é´Á"
  11. End Sub
½Æ»s¥N½X
¾Ç®üµL²P_¤£®¢¤U°Ý

TOP

¦^´_ 5# maiko
¶i¶¥¬d¸ß¡A¦b¤@¯ë¼Ò²Õ
  1. Sub Search_Data()
  2. With Sheet1
  3.   y = .[A2]: m = .[B2]: d = .[C2]
  4.   .[A2] = IIf(.[A2] = "", "", "=YEAR(Sheet2!A2)=" & y)
  5.   .[B2] = IIf(.[B2] = "", "", "=MONTH(Sheet2!A2)=" & m)
  6.   .[C2] = IIf(.[C2] = "", "", "=DAY(Sheet2!A2)=" & d)
  7. With Sheet2
  8.    .Range("A1").CurrentRegion.AdvancedFilter xlFilterCopy, Sheet1.[A1:E2], Sheet1.[A6:D6], False
  9. End With
  10. If .[A7] = "" Then
  11.   MsgBox "µL¸ê®Æ"
  12. Else
  13.   .Cells(.Rows.Count, 3).End(xlUp).Offset(2).Resize(, 2) = Array("Á`¦@:", "=SUM(R7C:R[-1]C)")
  14. End If
  15.   .[A2] = y
  16.   .[B2] = m
  17.   .[C2] = d
  18. End With
  19. End Sub
½Æ»s¥N½X
¨ú±oSheet2¤u§@ªíB¡BCÄ椣­«½Æ²M³æ°µ¬°ÅçÃÒ²M³æ
Sheet2¤u§@ªí¼Ò²Õ
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2. Set d = CreateObject("Scripting.Dictionary")
  3. Set d1 = CreateObject("Scripting.Dictionary")
  4. If Target.Column = 2 Or Target.Column = 3 Then
  5. For Each a In Range([B2], Cells(Rows.Count, 2).End(xlUp)).SpecialCells(xlCellTypeConstants)
  6. d(a.Value) = ""
  7. d1(a.Offset(, 1).Value) = ""
  8. Next
  9. With Sheet1
  10.   With .Range("D2").Validation
  11.   .Delete
  12.   .Add xlValidateList, , , Join(d.keys, ",")
  13.   End With
  14.   With .Range("E2").Validation
  15.   .Delete
  16.   .Add xlValidateList, , , Join(d1.keys, ",")
  17.   End With
  18. End With
  19. End If
  20. End Sub
½Æ»s¥N½X
Sheet2¤u§@ªíB¡BCÄ榳ÅܰʮɡASheet1¤u§@ªí[D2]¡B[E2]ªºÅçÃÒ²M³æ´N·|§ïÅÜ
¾Ç®üµL²P_¤£®¢¤U°Ý

TOP

¦^´_ 8# maiko


    §A§â¥N½X©ñ¿ù¤u§@ªí¼Ò²Õ
­n©ñ¦bSheet2¤u§@ªí¼Ò²Õ¤º
µM«áÅÜ°ÊB¡BCÄæ¸ê®Æ
¥u¦³D2¡BE2¦³ÅçÃÒ¡A¬O¦]¬°¶i¶¥¿z¿ï·Ç«h½d³ò¥Ø«e¥u¦³A1:E2
¨ä¥L³¡¤À¨Ã¤£»Ý­nÅçÃÒ²M³æ¡A­Y§A¦³»Ý¨D¥u­n§â½d³ò§ï¤@¤U´N¦n
¾Ç®üµL²P_¤£®¢¤U°Ý

TOP

¦^´_ 11# maiko

¦bSheet2¤¤ªºB¡BCÄæÀH«K¥´­Ó¸ê®Æ¬Ý¬Ý
¾Ç®üµL²P_¤£®¢¤U°Ý

TOP

¦^´_ 14# maiko

Book3_New.rar (26.71 KB)
sheet1¼Ò²Õ
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2. Application.EnableEvents = False
  3. If Not Intersect(Target, [A2:C2]) Is Nothing Then CreateList
  4. Application.EnableEvents = True
  5. End Sub
½Æ»s¥N½X
¤@¯ë¼Ò²Õ
  1. Sub Search_Data_New()
  2. Application.ScreenUpdating = False
  3. Application.EnableEvents = False
  4. With Sheet1
  5.   y = .[A2]: m = .[B2]: d = .[C2]
  6.   .[A2] = IIf(.[A2] = "", "", "=YEAR(Sheet2!A2)=" & y)
  7.   .[B2] = IIf(.[B2] = "", "", "=MONTH(Sheet2!A2)=" & m)
  8.   .[C2] = IIf(.[C2] = "", "", "=DAY(Sheet2!A2)=" & d)

  9. With Sheet2
  10.    .Range("A1").CurrentRegion.AdvancedFilter xlFilterCopy, Sheet1.[A1:E2], Sheet1.[A6:D6], False
  11. End With

  12. If .[A7] = "" Then
  13.   MsgBox "µL¸ê®Æ"
  14. Else
  15.   .Cells(.Rows.Count, 3).End(xlUp).Offset(2).Resize(, 2) = Array("Á`¦@:", "=SUM(R7C:R[-1]C)")
  16. End If
  17.   
  18.   .[A2] = y
  19.   .[B2] = m
  20.   .[C2] = d

  21. End With
  22. Application.ScreenUpdating = True
  23. Application.EnableEvents = True
  24. End Sub
  25. Sub CreateList()
  26. Dim A As Range
  27. Set dic = CreateObject("Scripting.Dictionary")
  28. Set dic1 = CreateObject("Scripting.Dictionary")
  29. With Sheet1
  30.   y = .[A2]: m = .[B2]: d = .[C2]
  31.   .[A2] = IIf(.[A2] = "", "", "=YEAR(Sheet2!A2)=" & y)
  32.   .[B2] = IIf(.[B2] = "", "", "=MONTH(Sheet2!A2)=" & m)
  33.   .[C2] = IIf(.[C2] = "", "", "=DAY(Sheet2!A2)=" & d)

  34. With Sheet2
  35. .[F1:G1] = .[B1:C1].Value
  36.    .Range("A1").CurrentRegion.AdvancedFilter xlFilterCopy, Sheet1.[A1:C2], .[F1:G1], True
  37.    r = .Range("F1").CurrentRegion.Rows.Count
  38.    With .Range(.[F1], .[F1].End(xlDown))
  39.    .Sort key1:=.Cells(1, 1), Header:=xlYes
  40.    If r > 1 Then
  41.    For Each A In .Cells(1).Offset(1).Resize(.Count - 1, 1)
  42.       dic(A.Value) = ""
  43.    Next
  44.    End If
  45.    .Clear
  46.    End With
  47.    With .Range(.[G1], .[G1].End(xlDown))
  48.    .Sort key1:=.Cells(1, 1), Header:=xlYes
  49.    If r > 1 Then
  50.    For Each A In .Cells(1).Offset(1).Resize(.Count - 1, 1)
  51.       dic1(A.Value) = ""
  52.    Next
  53.    End If
  54.    .Clear
  55.    End With

  56. End With
  57. With .Range("D2").Validation
  58.   .Delete
  59.   If r > 1 Then .Add xlValidateList, , , Join(dic.keys, ",")
  60. End With
  61. With .Range("E2").Validation
  62.   .Delete
  63.   If r > 1 Then .Add xlValidateList, , , Join(dic1.keys, ",")
  64. End With
  65.   
  66.   .[A2] = y
  67.   .[B2] = m
  68.   .[C2] = d

  69. End With
  70. End Sub
½Æ»s¥N½X
¾Ç®üµL²P_¤£®¢¤U°Ý

TOP

        ÀR«ä¦Û¦b : ½_ÁJµ²±o¶V¹¡º¡¡A¶V·|©¹¤U««¡A¤@­Ó¤H¶V¦³¦¨´N¡A´N­n¶V¦³Á¾¨Rªº¯ÝÃÌ¡C
ªð¦^¦Cªí ¤W¤@¥DÃD