[¨D§U] ½Ð°ª¤â¨D§U¡A¦p¦ó¥Îvba¬d§ä¸ê®Æ®w¤¤ªº¸ê®Æ°O¿ý¡H
- ©«¤l
- 4901
- ¥DÃD
- 44
- ºëµØ
- 24
- ¿n¤À
- 4916
- ÂI¦W
- 102
- §@·~¨t²Î
- Windows 7
- ³nÅ骩¥»
- Office 20xx
- ¾\ŪÅv
- 150
- ©Ê§O
- ¨k
- ¨Ó¦Û
- ¥x¥_
- µù¥U®É¶¡
- 2010-4-30
- ³Ì«áµn¿ý
- 2025-4-28
               
|
¦^´_ 2# maiko - Sub Search_Data()
- d = [A2]
- [A2] = IIf([A2] >= 1 And [A2] <= 12, "=MONTH(Sheet2!A2)=" & d, IIf(d = "", "", "=YEAR(Sheet2!A2)=" & d))
- [A1] = IIf([A2] <> "", "", "¤é´Á")
- With Sheet2
- .Range("A1").CurrentRegion.AdvancedFilter xlFilterCopy, Sheet1.[A1:C2], Sheet1.[A6:D6], False
- End With
- Cells(Rows.Count, 3).End(xlUp).Offset(2).Resize(, 2) = Array("Á`¦@:", "=SUM(R7C:R[-1]C)")
- [A2] = d
- [A1] = "¤é´Á"
- End Sub
½Æ»s¥N½X |
|
¾Ç®üµL²P_¤£®¢¤U°Ý
|
|
|
|
|
- ©«¤l
- 4901
- ¥DÃD
- 44
- ºëµØ
- 24
- ¿n¤À
- 4916
- ÂI¦W
- 102
- §@·~¨t²Î
- Windows 7
- ³nÅ骩¥»
- Office 20xx
- ¾\ŪÅv
- 150
- ©Ê§O
- ¨k
- ¨Ó¦Û
- ¥x¥_
- µù¥U®É¶¡
- 2010-4-30
- ³Ì«áµn¿ý
- 2025-4-28
               
|
¦^´_ 5# maiko
¶i¶¥¬d¸ß¡A¦b¤@¯ë¼Ò²Õ- Sub Search_Data()
- With Sheet1
- y = .[A2]: m = .[B2]: d = .[C2]
- .[A2] = IIf(.[A2] = "", "", "=YEAR(Sheet2!A2)=" & y)
- .[B2] = IIf(.[B2] = "", "", "=MONTH(Sheet2!A2)=" & m)
- .[C2] = IIf(.[C2] = "", "", "=DAY(Sheet2!A2)=" & d)
- With Sheet2
- .Range("A1").CurrentRegion.AdvancedFilter xlFilterCopy, Sheet1.[A1:E2], Sheet1.[A6:D6], False
- End With
- If .[A7] = "" Then
- MsgBox "µL¸ê®Æ"
- Else
- .Cells(.Rows.Count, 3).End(xlUp).Offset(2).Resize(, 2) = Array("Á`¦@:", "=SUM(R7C:R[-1]C)")
- End If
- .[A2] = y
- .[B2] = m
- .[C2] = d
- End With
- End Sub
½Æ»s¥N½X ¨ú±oSheet2¤u§@ªíB¡BCÄæ¤£«½Æ²M³æ°µ¬°ÅçÃÒ²M³æ
Sheet2¤u§@ªí¼Ò²Õ- Private Sub Worksheet_Change(ByVal Target As Range)
- Set d = CreateObject("Scripting.Dictionary")
- Set d1 = CreateObject("Scripting.Dictionary")
- If Target.Column = 2 Or Target.Column = 3 Then
- For Each a In Range([B2], Cells(Rows.Count, 2).End(xlUp)).SpecialCells(xlCellTypeConstants)
- d(a.Value) = ""
- d1(a.Offset(, 1).Value) = ""
- Next
- With Sheet1
- With .Range("D2").Validation
- .Delete
- .Add xlValidateList, , , Join(d.keys, ",")
- End With
- With .Range("E2").Validation
- .Delete
- .Add xlValidateList, , , Join(d1.keys, ",")
- End With
- End With
- End If
- End Sub
½Æ»s¥N½X Sheet2¤u§@ªíB¡BCÄæ¦³ÅܰʮɡASheet1¤u§@ªí[D2]¡B[E2]ªºÅçÃÒ²M³æ´N·|§ïÅÜ |
|
¾Ç®üµL²P_¤£®¢¤U°Ý
|
|
|
|
|
- ©«¤l
- 4901
- ¥DÃD
- 44
- ºëµØ
- 24
- ¿n¤À
- 4916
- ÂI¦W
- 102
- §@·~¨t²Î
- Windows 7
- ³nÅ骩¥»
- Office 20xx
- ¾\ŪÅv
- 150
- ©Ê§O
- ¨k
- ¨Ó¦Û
- ¥x¥_
- µù¥U®É¶¡
- 2010-4-30
- ³Ì«áµn¿ý
- 2025-4-28
               
|
¦^´_ 14# maiko
Book3_New.rar (26.71 KB)
sheet1¼Ò²Õ- Private Sub Worksheet_Change(ByVal Target As Range)
- Application.EnableEvents = False
- If Not Intersect(Target, [A2:C2]) Is Nothing Then CreateList
- Application.EnableEvents = True
- End Sub
½Æ»s¥N½X ¤@¯ë¼Ò²Õ- Sub Search_Data_New()
- Application.ScreenUpdating = False
- Application.EnableEvents = False
- With Sheet1
- y = .[A2]: m = .[B2]: d = .[C2]
- .[A2] = IIf(.[A2] = "", "", "=YEAR(Sheet2!A2)=" & y)
- .[B2] = IIf(.[B2] = "", "", "=MONTH(Sheet2!A2)=" & m)
- .[C2] = IIf(.[C2] = "", "", "=DAY(Sheet2!A2)=" & d)
- With Sheet2
- .Range("A1").CurrentRegion.AdvancedFilter xlFilterCopy, Sheet1.[A1:E2], Sheet1.[A6:D6], False
- End With
- If .[A7] = "" Then
- MsgBox "µL¸ê®Æ"
- Else
- .Cells(.Rows.Count, 3).End(xlUp).Offset(2).Resize(, 2) = Array("Á`¦@:", "=SUM(R7C:R[-1]C)")
- End If
-
- .[A2] = y
- .[B2] = m
- .[C2] = d
- End With
- Application.ScreenUpdating = True
- Application.EnableEvents = True
- End Sub
- Sub CreateList()
- Dim A As Range
- Set dic = CreateObject("Scripting.Dictionary")
- Set dic1 = CreateObject("Scripting.Dictionary")
- With Sheet1
- y = .[A2]: m = .[B2]: d = .[C2]
- .[A2] = IIf(.[A2] = "", "", "=YEAR(Sheet2!A2)=" & y)
- .[B2] = IIf(.[B2] = "", "", "=MONTH(Sheet2!A2)=" & m)
- .[C2] = IIf(.[C2] = "", "", "=DAY(Sheet2!A2)=" & d)
- With Sheet2
- .[F1:G1] = .[B1:C1].Value
- .Range("A1").CurrentRegion.AdvancedFilter xlFilterCopy, Sheet1.[A1:C2], .[F1:G1], True
- r = .Range("F1").CurrentRegion.Rows.Count
- With .Range(.[F1], .[F1].End(xlDown))
- .Sort key1:=.Cells(1, 1), Header:=xlYes
- If r > 1 Then
- For Each A In .Cells(1).Offset(1).Resize(.Count - 1, 1)
- dic(A.Value) = ""
- Next
- End If
- .Clear
- End With
- With .Range(.[G1], .[G1].End(xlDown))
- .Sort key1:=.Cells(1, 1), Header:=xlYes
- If r > 1 Then
- For Each A In .Cells(1).Offset(1).Resize(.Count - 1, 1)
- dic1(A.Value) = ""
- Next
- End If
- .Clear
- End With
- End With
- With .Range("D2").Validation
- .Delete
- If r > 1 Then .Add xlValidateList, , , Join(dic.keys, ",")
- End With
- With .Range("E2").Validation
- .Delete
- If r > 1 Then .Add xlValidateList, , , Join(dic1.keys, ",")
- End With
-
- .[A2] = y
- .[B2] = m
- .[C2] = d
- End With
- End Sub
½Æ»s¥N½X |
|
¾Ç®üµL²P_¤£®¢¤U°Ý
|
|
|
|
|