Private Sub Worksheet_Change( ByVal Target As Range) Dim nRow% ,  Arr( ) ,  cMc$,  cPc$,  cTxt$,  nSum!If Target. Row =  1  Or Target. Column <>  4  Then Exit SubIf Target. CountLarge >  1  Then Exit SubcMc =  Target. Offset( 0 ,  - 1 ) . ValuecPc =  Target. ValueIf cMc =  ""  Or cPc =  ""  Then Exit SubFor sh =  0  To 1 With Sheets( Array( "期初" ,  "入库" ) ( sh) ) nRow =  . Range( "a1048576" ) . End( xlUp) . RowArr =  . Range( "a1:e"  &  nRow) . ValueEnd WithFor i =  2  To nRowIf Arr( i,  2  +  sh)  =  cMc And Arr( i,  3  +  sh)  =  cPc ThennSum =  nSum +  Arr( i,  4  +  sh) End IfNextNextnRow =  Target. Row -  1 With MeArr =  . Range( "a1:e"  &  nRow) . ValueEnd WithFor i =  2  To nRowIf Arr( i,  3 )  =  cMc And Arr( i,  4 )  =  cPc ThennSum =  nSum -  Arr( i,  5 ) End IfNextWith Target. Offset( 0 ,  1 ) . Validation. Delete. Add 2 ,  1 ,  8 ,  nSum. InputTitle =  "最大值" . InputMessage =  nSumEnd With
End SubPrivate Sub Worksheet_SelectionChange( ByVal Target As Range) Dim nRow% ,  Arr( ) ,  cMc$,  cTxt$,  sh% If Target. Row =  1  Or Target. Column <>  4  Then Exit SubIf Target. CountLarge >  1  Then Exit SubcMc =  Target. Offset( 0 ,  - 1 ) . ValueIf cMc =  ""  Then Exit SubFor sh =  0  To 1 With Sheets( Array( "期初" ,  "入库" ) ( sh) ) nRow =  . Range( "a1048576" ) . End( xlUp) . RowArr =  . Range( "a1:d"  &  nRow) . ValueEnd WithFor i =  2  To nRowIf Arr( i,  2  +  sh)  =  cMc ThenIf Not cTxt &  ","  Like "*,"  &  Arr( i,  3  +  sh)  &  ",*"  ThencTxt =  cTxt &  ","  &  Arr( i,  3  +  sh) End IfEnd IfNextNextWith Target. Validation. DeleteIf cTxt <>  ""  Then . Add 3 ,  1 ,  1 ,  cTxtEnd With
End Sub