邢唷> OpN  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLM\bQRSTUVWXYZ[]a^_`c7dfqhijklmnoerstuvwxyz{|}~Root Entry F A8;ΦP\Workbook1珫_VBA_PROJECT_CUR"/#雒彽飿炷彽VBA.@撒脧底~閱彽 g2\plurenjia Ba= ThisWorkbook= L}8X@"1喓媅SO1喓媅SO1喓媅SO1喓媅SO1喓媅SO1喓媅SO1喓媅SO1Arial1喓媅SO1h>喓媅SO1,>喓媅SO1>喓媅SO1@喓媅SO1喓媅SO1喓媅SO1喓媅SO1喓媅SO1Arial1Q喓媅SO1喓媅SO1喓媅SO1喓媅SO1喓媅SO1@喓媅SO1 喓媅SO1喓媅SO1 喓媅SO1喓媅SO1喓媅SO1喓媅SO1 喓媅SO1 喓媅SO10喓媅SO1喓媅SO1喓媅SO1 喓媅SO1喓媅SO1@喓媅SO1 喓媅SO1 喓媅SO1@喓媅SO1喓媅SO1 喓媅SO1喓媅SO1喓媅SO1 喓媅SO1>喓媅SO1喓媅SO1 喓媅SO1喓媅SO1喓媅SO14喓媅SO1 喓媅SO1喓媅SO1 喓媅SO14喓媅SO1<喓媅SO1?喓媅SO1>喓媅SO1喓媅SO""#,##0;""\-#,##0""#,##0;[Red]""\-#,##0""#,##0.00;""\-#,##0.00#""#,##0.00;[Red]""\-#,##0.007*2_ ""* #,##0_ ;_ ""* \-#,##0_ ;_ ""* "-"_ ;_ @_ .))_ * #,##0_ ;_ * \-#,##0_ ;_ * "-"_ ;_ @_ ?,:_ ""* #,##0.00_ ;_ ""* \-#,##0.00_ ;_ ""* "-"??_ ;_ @_ 6+1_ * #,##0.00_ ;_ * \-#,##0.00_ ;_ * "-"??_ ;_ @_ \$#,##0_);\(\$#,##0\)\$#,##0_);[Red]\(\$#,##0\) \$#,##0.00_);\(\$#,##0.00\)% \$#,##0.00_);[Red]\(\$#,##0.00\)""#,##0;\-""#,##0""#,##0;[Red]\-""#,##0""#,##0.00;\-""#,##0.00#""#,##0.00;[Red]\-""#,##0.0050_-""* #,##0_-;\-""* #,##0_-;_-""* "-"_-;_-@_-,'_-* #,##0_-;\-* #,##0_-;_-* "-"_-;_-@_-=8_-""* #,##0.00_-;\-""* #,##0.00_-;_-""* "-"??_-;_-@_-4/_-* #,##0.00_-;\-* #,##0.00_-;_-* "-"??_-;_-@_-"Yes";"Yes";"No""True";"True";"False""On";"On";"Off"],[$ -2]\ #,##0.00_);[Red]\([$ -2]\ #,##0.00\)0_);[Red]\(0\)0.00_);[Red]\(0.00\)0_  0.0_                 - - - - - - - - - - - - . . . . . .      P /P      0 -    1 2 3a   4  5攆f 6 7 8`   . . . . . . 9 : ;  <    @ @  @ @  ""@ @ @ @ @ @ @ @ !@ @ ""@ @   1 1  1 1@ @ 1 1 1|7  1|7 1 1 1 1 1 @ @ @ @ 0@    1 1 1 1@ @ 1@ @  %1@ @  1 1|@  1 1 &1|@ @ 7 1<@ @ '1@  1 1 1 )1|7 *1@ @ 1 1  @  1 1 1 1 ||zu6婝}-} 00_)}-} 00_)}-} 00_)}-} 00_)}-} 00_)}-} 00_)}A} 00_)ef[$ -}A} 00_)ef [$ -}-} 00_)}A} 00_)蘈[$ -}-} 00_)}-} 00_)}A} 00_)蘈[$ -}-} 00_)}-} 00_)}A} 00_)23[$ -}-} 00_)}-} 00_)}A}  00_)23[$ -}-}! 00_)}-}%?_)}A}( ?_)俏[$ -}-}) ?_)}(}-  ?_)}A}. a?_)騎[$ -}-}/ ?_)}}}2 鷠?_)[$ -##0.  }}3 ?_)ゥ[$ -???##0.??? ??? ???}-}4 ?_)}-}5 ?_)}A}6 鷠?_)[$ -}A}? 渆?_)霚[$ -}}}@ ????_)???[$ -???##0. ??? ???}}A ??v?_)虣[$ -##0.  }(}B  ?_)}-}9 ?_)}A}: ?_)[$ -}A}; ?_)[$ -}-}< ?_)}A}= ?_)[$ -}A}> ?_) [$ -}x}C?_)膊 [$膊## 膊 膊}-}E ?_)}-}G ?_)}-}N ?_)}-}O ?_)}-}P ?_)}-}Q ?_)}-}U ?_)}-}X ?_)}-}Y ?_)}-}Z ?_)}-}[ ?_)}-}_ ?_)}-}` ?_)}-}b ?_)}-}c ?_)}-}e ?_)}-}i ?_)}-}j ?_)}-}n ?_)}-}o ?_)}-}s ?_)}-}t ?_)}-}u ?_)}-}v ?_)}-}x ?_)}-}y ?_)!20% - :_寚eW[湗r 1C20% - :_寚eW[湗r 1 %!20% - :_寚eW[湗r 2C"20% - :_寚eW[湗r 2 %!20% - :_寚eW[湗r 3C&20% - :_寚eW[湗r 3 %!20% - :_寚eW[湗r 4C*20% - :_寚eW[湗r 4 %!20% - :_寚eW[湗r 5O.20% - :_寚eW[湗r 5 ef陬 %!20% - :_寚eW[湗r 6O220% - :_寚eW[湗r 6  ef %!40% - :_寚eW[湗r 1C40% - :_寚eW[湗r 1 %!40% - :_寚eW[湗r 2O#40% - :_寚eW[湗r 2 蘈娓 %!40% - :_寚eW[湗r 3C'40% - :_寚eW[湗r 3 %!40% - :_寚eW[湗r 4C+40% - :_寚eW[湗r 4 %!40% - :_寚eW[湗r 5O/40% - :_寚eW[湗r 5 蘈忿 %!40% - :_寚eW[湗r 6C340% - :_寚eW[湗r 6 %!60% - :_寚eW[湗r 1C 60% - :_寚eW[湗r 1 %!60% - :_寚eW[湗r 2O$60% - :_寚eW[湗r 2 23跂 %!60% - :_寚eW[湗r 3C(60% - :_寚eW[湗r 3 %!60% - :_寚eW[湗r 4C,60% - :_寚eW[湗r 4 %! 60% - :_寚eW[湗r 5O060% - :_寚eW[湗r 5 23捦 %!!60% - :_寚eW[湗r 6C460% - :_寚eW[湗r 6 %"~vR詋 #h槝h槝 $h槝 1h槝 1 %h槝 21h槝 2%?Э &h槝 3h槝 3 'h槝 4h槝 4(頬5頬 俏 %+8^膲 %)8^膲 1218^膲 12 % *8^膲 2 +8^膲 4, 8^膲_hQ齎L?e:SR鉔x-(厤  .}Y5}Y 騎 a% /Gl;`+Gl;` %0'^1 '^[0] 2梴c梴 鷠% 3纇錱USCQ:_寚eW[湗r 6C1:_寚eW[湗r 6  鯷F % ?-N7-N 霚 渆% @搹鶴c搹鶴 ???%????????? ??? A搹eQo搹eQ 虣 ??v% B 0 騗繈顣剉厤   C鑜蕬^ 鑜蕬 膊膊膊 膊XTableStyleMedium9PivotStyleLight168覽櫃3ffff燙櫶櫶虣虣3f3燙櫶fff枛3f3檉33333f33333\瓊`&PV齎禰盧譥VYf[褢D崺RN TUS3u鮦{鉔xh垍"曪嬦Oo`VV!  =dc:- Km諎@b g!h寶膲Rv^SbpS曪嬦Oo`fff餚0ED@N餏|MO,S A咥@臕@   1 7 checkDiffName餠緰歔餠緰+R T饄 checkSqyyCode3u鮦t1ux媖緐NO軴 checkSqyyName3u鮦t1u T饄f[u覻 T 77usY筫誰 T廭鱏/魦f T饄{|媁 checkYesNo checkGender'`+RsY'`+R7u^8^餠緰N,傪V緰 N餠緰vQ諲鄀US睳d[?Q萷隭P[sY淨Qg擭軴郪舥郪~p塵淨NNsfzjh 7臺頞蔛 >{>N?3?q婡p丄f礐鬍臚鐶 $I 9J 4K 6L繫萅鮋罳S齌ccBO岆Uj_ 翶U g2  發衱  d褚MbP?_*+%{&ffffff?'ffffff?(?)?M.Microsoft Print to PDFP/ 4dXXA4GIS4DINU"$,?]{~SMTJ{084F01FA-E634-4D77-83EE-074817C03581}RESDLLUniresDLLPaperSizeA4OrientationPORTRAITResolutionResOption1ColorModeColor,V4DM p"O4鎤M冾H5佇L*@VDocumentUserPasswordDocumentOwnerPasswordDocumentCryptSecurity" d333333?333333?&<3cA薝} U} i} U} U} U} U} U} v} U} v} U} v} g U} ht U} u U}  U vvPvPvt`vPvPvQvRvTv{@ f< p} e; s c: s [, [ s s X Y{ P P P P P P P P P P t P t P ta"@gttt mU h__ _V_________________u_u_u___________________________________________________________________________________________uittt Q i= P P Y Y Y Y Y  Y  Y  PX  PX  nX nX nX nX nX nX nX nX nX t nX t nX t \*j Q! Q Z3 by Z' Z&  Z)  Z( o  oY  oZ o[ o\ ov Qw o] o^ Q_ o` w oa w ob w iZ@lP nZPo pQqZ sQ V k> WT q W2 WW W" W# Wt  W%  W$  Wc  Wd  We Wf Wg Wh Wi Wj Wk Wl Wm W Wn W Wo W S1 l? r r d4 S5 S6 S7 Su  S8  S9  Sp  S  Sq Sr S Sq Sr S Sq Sr S l S l Ss lxyyyyyyyyy yyyyy z:(zzz癆+x鷦(  饜 vj 餘PX? p]4v6@ 矧摒E@雇姆Q> <kX橯f[u剉覻 T<~饉  <CC@],@蓶9 $< _薡纇錱<~饉 閕 <PCC@G],5@9|蓶9 $<_ 薡 纇 錱<v6admin>@dinjn  7 Sheet1ggDh4hd:S遅2 g2 7鹽_)  d褚MbP?_*+%&ffffff?'ffffff?(?)?MFoxit Reader PDF Printer_ 4dXXA4" dXX333333?333333?&<3U} @F} D} D} !D}  E} E}  E7 @ ,,,,,,, , , , , ,, M H H MN OxGGGG O ]+K? ^- ]. E IK ^0 ]/GKKG IK@ J I IK? J IKGKKL I K? J L I K@ K L I K@ K L I K@ K L GKKLGKKL I II I I II? I I II@ I I II@ I I II@ I I II@ I I II@ I I II@ I I II @ I I II"@ I I I I$@ I II I I II? I I II@ I I II@ I I II@ I I BXP J<<< <<<<<<<<<<<<<<<<<<< !"#$%',(,),*,+,,,-,.,/,0,1,2,4,5,6, I I@ I I !I!I@ !I !I "I"I@ "I "I #I#I @ #I #I $I$I"@ $I $I %I%I$@ %I %I 'IB'I? 'JC 'LD (IE(I@ (JF (LD )IE)I@ )KG )LD *IE*I@ *KH *LD +IE+I@ +KI +LD ,IE,I@ ,KJ ,LD -IE-I@ -KK -LD .IE.I @ .KL .LD /IA/I"@ /KM /LD 0IE 0IN 0KO 0LD 1IE 1IP 1KQ 1LD 2Iz 2IR 2KS 2LD 4I~4I? 4K 4L| 5I~5I@ 5K 5L| 6I~6I@ 6K 6L|.<<<<<<<<<<<<<<<888<<P餒  0(   >@?7 Sheet5ggD g2 ,<臅  d褚MbP?_*+%&ffffff?'ffffff?(?)?"333333?333333?&<3U,     GGGGGGGGG G G G G GGGGGGGGGGGGGGGGGGGDl  !"#$%&'()*+ G!G"G#G$G%G&G'G(G)G*G+Gh P餒00(  >@   7 Sheet6ggD ThisWorkbook __SRP_40<__SRP_5 =ySheet1?B  !"#$%&'()*+,-./123456789:;<>@ABCDEFGHIJKLMNOPQRSTUVWXZ[\]^_abdefghijklmnopqrstvwxz|}~t6D 梺zL#<欇Q?8貯C殗@韝FL=灷麼ФhHJ>xL=灷麼ФhHJ>欇Q?8貯C殗@韝ME(SLSS6"  <,<0<4<8<<<N0{00020819-0000-0000-C000-000000000046}` $`聽k@ i& `sgi( %凗 %偁  %`@.0,*24@l @\ @0L @x< @H, @` @ @ @忐 @滎 @烴 @8件 @ @ 滯 @P岨 @| @hl @\ @L @< @, @ @ @( @@忑 @犖 @聽 @S儎_$*\Rffff*0=634bbcb0*\R0*#f*\R0*#1*\R0*#17$*\Rffff*0>634bbcb0*\R0*#2$*\Rffff*0<634bbcad4 "     )您是否確認將要保存該excel,如保存📘,請點擊"$.確定"$., $.&系統將要進行檢查校驗,如不保存🧔‍♀️,請點擊"$.取消"$.? 0$,'* * 2A@4dP'(k@o80詒Attribute VB_Name = "ThisWorkbook" 孊as0{00020P819-0C$0046} |GlobalSpac扚alse dCreatablPred恊claIdTru BExposeTemplateDeriv払ustomi6zD2P Sub 厬_BeforeSave(@ByVal AsUI As Boolean, _ Can(cel) is亖ButtonkMsgBox("您是否確認將要保@存該ex 🫄🏿👩🏿‍🎓,請點擊" & Chr(34)"確定 ,10系統進行檢查愋Q鍈不∠?", 0vbOKC63If L4 Then荁丏測試所有A規則⒋蠐〈砦狊信息 E聣gP腜= fE nd If Ai rU  ) 1 Q   A i +4 a  ` x矚"l "  滎 "滯 "\ '聽'忑' :\lL:<, :忐滎烴:件滯岨:|l\L:<,鋤6$lL, 忐滎烴滯岨l﨤, 忑聽u琿  $V TlL, 忐滎烴滯岨l\L, 忑聽4XrU @,`#n8We9梺逪#<o▅75嶯;3. F3?]^鉇暵7瘂x3?]^鉇暵7瘂憃▅75嶯;3.ME PSLSS0>6"<<<N0{00020820-0000-0000-C000-000000000046}P 8@` ` :` d)< %%@凗%偁6@%@@h`S儎_*\R1*#253$*\Rffff*0?634bbcb14 "  "   (op@o`XAttribute VB_Name = "She@et1" 鐱ast0{00020820- C$0046} |Global!腟pac扚alse dCreatablPre declaId玊ru BExposeTemplateDeriv$払ustom宨zD2 P Sub Works亾_Activ () p EndSeleonChange(ByVal Targe纓 As R %rU 0Qy)40`` IW0   0 @  44P__SRP_8Y__SRP_9`Sheet6c~__SRP_eurU @$``,A`d n<jx梺#< au﨏樛akJ庶 FJ2CR矲撼 髵xJ2CR矲撼 髵 au﨏樛akJ庶ME(SLSS6"N0{00020820-0000-0000-C000-000000000046}(%H凗` %偁@ %`h8@``0S儎_$*\Rffff*0B634bbcb14xòAttribute VB_Name = "She@et6" 鐱ast0{00020820- C$0046} |Global!腟pac扚alse dCreatablPre declaId玊ru BExposeTemplateDeriv$払ustom izD2rU y)4`rU @ndkk梺xME__SRP_f yBSbpS剺葔  {錧wQ齉pe g__SRP_aP D0@S儎_"  ( Hhx學生信息打印模板$F(H學生信息打印模板$FB@J學生信息打印模板$F(Ho偘Attribute VB_Name = "打≡だ" Sub Browse_Print () Worksheets("學生信息l模板").Visibla楾rue"d^P@review2cEnd rU~|    90  0   0   0  B  h p2 p `B  x 8 $ 8 "@ pHB   8  $0 X$`  xB  48(p*$ 8BH0!X`hp x  B  ( 0 4P $  "   "    .( X p 0   *   .0 ` x .   0    .8  h x 6   6  (I梺艄xME(6 LLH N` @ I働 `fiI僐 `凾 Z` i僜 dX` 8  i僜 n`  I僷 I働 I僐 I價  |` X  #I僷 xI働 I僐  `  .I僷 I儓 8I働 XI僐 xI儕  x`  FFCI儝 I僷 I働 8I僐 XI償   `  I I儢 ` p` P I +2( `  I僷 I4 i6`8 H ` h I僷 I働 I僇 I儢   ` ( I儢 HI働 hI僐 @刅 ^  `  I僷 I僙  d ` ` I僷 I僙  @ `  I僷  I働  I僇  f ` k I僷  I働  I僇  I儢    ` @ I儢 ` I僷  I働  I僇 @刅 @刪 @凾 ` H I僷 h I働  I僇 `凱`刲`刵@ xp(X  僉 % 0 ( 0 h H @fl X 0 F@ h @ X @ H @D @ 4 @$ @ @  `  S儎_$*\Rffff*0@634bbcb1*\R1*#385*\R1*#125*\R1*#119! B       B  1V88P 6 ( 8H(`&  f p >& 0 X@ h 0*H xj&  HXhp ` **8h  H(x H`( HH(p H(H  &  (H nP   8(@ 8(0  &  (H pP (  88$p 8P$ h &p < %h  h $$8,d$88 ,dp $      &  !(!0!P! nX! !(!"H "h"x"""""""""X#&X# ## #### b# P$ p$$$$$&@% h% ,x%%%% f% @& `&p&& & 8&(& 8'(' `( &h( (((( f( 8)(P) x) T) &) ** * $8* &`*$X*$&*$ +$+ (+0+ 8+ H+$tP+$&+$ + , $,, ,8, ^@, ,",,@,&(- P-`- h---- b-  .0.P. tX. &. . //0/ b8/ / ////&x0 0 0000 ^0 H1 h111X1&1 2 0282X2 ^`2 2 223X3&`3 3 333 ^3 (4 H4`4p4Tx4&4 4 55585 n@5 5 55"6(6&6 6 6667 j 7 7 77"78&8 8889 n 9 9 99"9:&: : :::  n; (p; &;;";;&< < <<<  n< X= &x=(=(==">0>&> ? ??8? P@?????&P@ x@ 園怈楡窣 R繞A0AHAXPA&ˋ 蠥 郃鐰餉B bB B$楤繠@菳&C 0C@C$HCpCxC楥 ^燙 D&D @D@HD&圖 癉繢&菵餌鳧E | E 燛$窫郋(鐴@F&PF xF 團"怓窮繤郌 |鐵 hG G燝@℅&鐶 H H (HHHPHpH |xH 鳫$I8I@@I&I ↖窱$繧鐸餓J dJ J 楯@窲&鳭 K0K28KpK xK L(L(@L(hL怢燣癓萀蠰郘鳯M M@MHM PM XM8xM$癕怤 &楴 繬蠳 豊$餘 O 88O(jpO  郞 鐿 &餙 P(P0P 8PXP Z`P 繮豍鳳NQ&PQ xQ圦怮R≦&R(R 0R@R HR PRXRxR  xR 鳵6S.PSS怱( 楽2⊿( 窼1萐( 豐2鑃( 鳶1TT TJ8T圱燭═ Z癟 U$(UPU@XU&楿 繳蠻"豒VV(V  P0V V怴(╒蠽 豓8餠$(W 豔 &郬 XX   0X 8HX(bX 鑈  餢 &鳻 Y0Y8YXY`YhY fpYB  豗 郰<鑉(Z HZ`Z$Z$╖衂豘 郱 \圼 B  鑋,\ 08\@h\"╘ ^衆 60]h]]燷繻0郵D^X^x^^坁恀榐 燸 "@_ h_ .坃B  竉 繽$衉B鴂 @` P` `` p` x` 坄恅榒 燻B  0a8a Xaxa a b 0b Hb hbB  b"坆 癰萣衎 豣郻鑒 餬8cHc2Pc坈 燾 纁衏 豤郼 鑓鴆 Fd`dhd pd xd *坉竏 纃 `e xeB  恊榚*竐 4鑕 f (f 萬 鄁B  鴉*g0g 8gB  萭 術餲 鴊B 坔<恏 J癶衕 豩B  坕 恑 "╥ 衖8餴2(j`j xj榡 ╦癹 竕 纉衘"餵0k Hk(hk恔榢&爇萲 衚鄈 鑛B  xllV爈鴏 8m Pm pm:m4續$鴐 n"8n`nhnpnn-----------------------------------------校驗校驗必填項若有錯誤信息顯示到 批注中----------------------------------------------------------- 單元格內容] P R V%X'T T'Nd('Nki--------------------------------------------寫日志 記錄錯誤信息並顯示到一個錯誤信息表中-------------------------------------------- \ b `$^,X b 'biX--------------------------------------------寫日志 記錄錯誤信息並用紅色字體顯示到錯誤信息表中-------------------------------------------- \'f \ b `$^,X f b `$^%X%h!j(l b 'bipi--------------------------------------------添加批注(點擊開始校驗)-------------------------------------errorInfo批注內容X 1Worksheets(sheetIndex).Unprotect Password:="1qaz" r P R p$F%XB@t P R p$F%X!v(xW 添加黃色背景 P R p$F%X!z(Hii--------------------------------------------刪除批注(點擊開始校驗)-------------------------------------1Worksheets(sheetIndex).Unprotect Password:="1qaz" P R p$F%XB@~ P  R  P R p$F%X!v(ld`  P R p$F%X!v(lk0i(r---------------------------------------------點擊開始校驗 是否添加或刪除批注調用的方法----------------------------  如果校驗失敗 P R p$F%X!zd 判斷批注為空 p P R A@nV 添加批注方法d"若不為空,則去除當前批注,重新添加 p P RA@|N 清除批注方法 p P R A@nk1 MsgBox "第" & rowIndex & "行數據項8️⃣:" & errorMsgd :如果校驗成功則判斷是否有批注🏋🏿‍♀️,若有則把校驗失敗時的批注去除 p P RA@| ,#如果做了去除空格處理,則對其進行提示第 P行🥷🏻,第 R列,您輸入的字符"$. "$."中包含了空格🧏🏻🚈,系統已自動為您清除了A@Zd`kXkPiH----------------------------------------------------------------------------------------------------------------------------------y--------------------------------------------根據標識符,調用對應的方法(點擊開始校驗)-----------------------------------------------------------------------------------------------------------------------------------------------------------------------把錯誤信息寫進錯誤列表 P R p$F%X'  R p$F%X'I獲取該列表頭的名稱 如果為合並行的表頭  R p$F%X' P e  R p$F%X'kh0'  checkLen*)如果為整數長度校驗  $'checkLen'  checkNum*e-如果為Number長度校驗  $'checkNum'  checkVal*e-如果為值的校驗  $'checkVal'  checkInt*e-如果為整數值的校驗  $'checkInt'  checkTerm1e-如果"是🧚🏽‍♀️💂🏻‍♂️、否"為必填1' checkTerm'  checkYesNo1e/如果"是🥦、否"為必填1' checkYesNo'  checkYesNoe.如果"是🐕、否"為必填1' checkYesNo' checkDiffName1e2如果困難級別名稱為必填1' checkDiffName' checkDiffCode1e2如果困難級別編碼為必填1' checkDiffCode' checkIDCardType1e4如果身份證件類型為必填1'checkIDCardType' checkSqyyName1e2如果申請原因名稱為必填1' checkSqyyName'  checkYear1e. 如果年份校驗1' checkYear'  checkPmmce- 如果年份校驗1,8,0' checkPmmc' checkBxke, 如果年份校驗1,8,0'checkBxk'k _=================================類型1 執行的非空校驗==========================================把錯誤信息寫進錯誤列表 checkNullKT p P R$' 第 P 行的數據項: 不能為空!請檢查'')整體校驗時,如果有錯誤信息 A@ZRMsgBox "第" & rgold.Row & "行的數據項:" & Chr(10) & titleMsg & "不能為空,請檢查"k` p  P R A@'a=================================類型2 執行學生姓名校驗========================================== checkNameKT p P RA@@調用去除空格的方法 P R p$F%X!' $' 第 P 行的數據項: ;填寫不正確!必須為漢字🧁,長度大于1,不能超過20個字符,請檢查''%整體校驗時,如果有錯誤信息 A@Z  'k p  P R A@'Z================================= 執行的長度校驗==========================================checkLenKT p P RA@F調用去除回車的方法 p P RA@H調用去除空格的方法  $'  ,$'$ ` 如果該項為非必填🤰🏿,並且為固定長度第 P 行的數據項🐱: .填寫不正確🏈,該項可以為空。若填寫,則長度必須為$ 位!請檢查'$ ed 如果該項為非必填,並且為長度範圍第 P 行的數據項: 4填寫不正確,該項可以為空🙎🏼‍♀️。若填寫🚣🏽‍♀️,則長度必須大于等于$ 位,且不超過$ 位🎠!請檢查'$ ed 如果該項為非必填🧿,並且為固定長度第 P 行的數據項: &填寫不正確,該項不能為空,且長度必須為$ 位👳‍♀️!請檢查'$ ed 如果該項為非必填,並且為長度範圍第 P 行的數據項: ,填寫不正確✒️🕥,該項不能為空,且長度必須大于等于$ 位👷🏼‍♂️,且不超過$ 位👍🏻!請檢查'k '0整體校驗時,如果有錯誤信息 A@Zk p  P R A@'h================================= 執行的長度校驗(Number類型)==========================================checkNumKT  $'  ,$'$@ 如果該項為非必填👩🏽‍🎓,並且為固定長度第 P 行的數據項: G填寫不正確,該項可以為空🐘,若填寫,則必須為數字👩🏻‍🦳,大于0🚉,整數位長度不超過$位🦟,且小數位不超過$ 位💆🏿‍♂️!請檢查'$eD 如果該項為非必填,並且為固定長度第 P 行的數據項🙅🏼‍♂️: ?填寫不正確,該項不能為空,且必須為數字,大于0🕴🏼,整數位長度不超過$位👨‍👧‍👧,且小數位不超過$ 位⛹🏽!請檢查'k'0整體校驗時,如果有錯誤信息 A@Zk p  P R A@'i================================= 執行名次30%校驗(Number類型)========================================== checkPmmcKT  $' p P$'N 獲取填寫內容  ,$'$@ 如果該項為非必填,並且為固定長度第 P 行的數據項: ?填寫不正確,該項不能為空,且必須為數字,大于0,整數位長度不超過$位🏄🏽,且小數位不超過$5位👩‍🔧!且成績排名次必須在成績排名總人數的50%之內!請檢查'$eD 如果該項為非必填,並且為固定長度第 P 行的數據項: ?填寫不正確↗️,該項不能為空,且必須為數字,大于0,整數位長度不超過$位,且小數位不超過$5位!且成績排名次必須在成績排名總人數的50%之內🧟‍♀️!請檢查'k'0整體校驗時😥,如果有錯誤信息 A@Z $ $? $ $ e  ? 第 P 行的數據項🧔‍♀️: 9填寫不正確🧝🏽,成績排名次必須在成績排名總人數50%之內!請檢查'  ?e ,$'$D 如果該項為非必填,並且為固定長度第 P 行的數據項: 6填寫不正確,成績排名次必須在成績排名總人數之內!請檢查'$eH 如果該項為非必填👰🏽‍♂️,並且為固定長度第 P 行的數據項: 6填寫不正確,成績排名次必須在成績排名總人數之內💨!請檢查'k k''0整體校驗時,如果有錯誤信息 A@Zk p  P R A@'g=================================15 checkName1 備注判斷是否必填--================================== checkName1KT p P$'K 獲取填寫內容 p P$' $ 殭櫃櫃?$ $ 333333?$1,8,0'  $'dh0,8,0'  $'  P p$^,Xkk 第 P 行的數據項: )只能輸入漢字,且字符長度最多為20位🕵🏽!請檢查''(整體校驗時,如果有錯誤信息 A@Zdh" checkYesNo p P RA@k@" p  P R A@'[=================================執行值範圍的校驗==========================================把錯誤信息寫進錯誤列表checkValKT  $'  ,$'第 P 行的數據項🍐: $填寫不正確🧙🏽‍♀️,該項必須為數字,大于等于$ ,且不超過$!請檢查''-整體校驗時🧑🏿‍🎓,如果有錯誤信息 A@Z& isValidateCount = isValidateCount + 1kP p  P R A@'_=================================執行的為整數值的校驗==========================================把錯誤信息寫進錯誤列表checkIntKT  $'  ,$'$@ 如果該項為非必填,並且為固定長度第 P 行的數據項: 8填寫不正確,該項可以為空,若填寫🖊,則必須為整數🕵🏻,大于等于$🧑🏿‍🦱,且長度不超過$ 位!請檢查'$eD 如果該項為非必填,並且為固定長度第 P 行的數據項🎬: 0填寫不正確,該項不能為空,且必須為整數👨🏼‍🎤🍸,大于等于$,且長度不超過$ 位!請檢查'k'0整體校驗時🟤,如果有錯誤信息 A@ZkX p  P R A@'`================================= 執行的身份證件號校驗========================================== checkSfzjhKT p P$'S 獲取填寫內容 第 P 行的數據項: &填寫不正確,因身份證件類型為空!請檢查''0整體校驗時,如果有錯誤信息 A@Zd  居民身份證  R$'O 身份證號校驗 :如果不符合身份證校驗規則第 P 行的數據項: *填寫不正確,該項必須為學生身份證號!請檢查''4整體校驗時,如果有錯誤信息 A@Z  'kd $' 第 P 行的數據項: E填寫不正確,該項不能為空,且長度必須大于等于1位👩🏽‍🏭,且不超過18位!請檢查''4整體校驗時,如果有錯誤信息 A@Zkkk p  P R A@'X================================= 執行身份證件類型校驗================================== checkZjlxKT checkZjlx 1$' 第 P 行的數據項: 填寫不正確!請檢查''(整體校驗時,如果有錯誤信息 A@Zd checkZjlx p P RA@kp p  P R A@'\================================= 執行學籍號的校驗==========================================checkXJHKT 1, 1, 50$' 第 P 行的數據項👱🏼🫏: E填寫不正確,該項不能為空,且長度必須大于等于1位,且不超過50位!請檢查''0整體校驗時,如果有錯誤信息 A@Zk p  P R A@'[=================================執行銀行卡號校驗==========================================把錯誤信息寫進錯誤列表 checkBankKT $' 第 P 行的數據項: $填寫不正確,該項必須為數字,大于等于$ ,且不超過$!請檢查''-整體校驗時👨🏻‍🍼,如果有錯誤信息 A@Zk@ p  P R A@'W=================================執行年份校驗==========================================把錯誤信息寫進錯誤列表 checkYearKT  $' 第 P 行的數據項𓀐: *填寫不正確,該項格式如2012🫸🏽、2002等!請檢查''-整體校驗時,如果有錯誤信息 A@Zk p  P R A@'W=================================執行學年校驗==========================================把錯誤信息寫進錯誤列表checkXnKT $' 第 P 行的數據項: )填寫不正確🏌️‍♂️,該項格式如2012-2013等✫!請檢查''-整體校驗時,如果有錯誤信息 A@Zk` p  P R A@'W=================================執行月份校驗==========================================把錯誤信息寫進錯誤列表 checkMonthKT $' 第 P 行的數據項: &填寫不正確🧑🏻‍⚕️,該項格式如01、12等!請檢查''-整體校驗時🧛🏿,如果有錯誤信息 A@Zk p  P R A@'g=================================類型3 執行的日期校驗(非必填)==========================================把錯誤信息寫進錯誤列表 checkDateKT  $' 2如果出生日期校驗失敗第 P 行的數據項: 填寫不正確💁!填寫格式為"$.xxxxxxxx"$. ,如20130221🗯,請檢查''-整體校驗時,如果有錯誤信息 A@Zk p  P R A@'c=================================執行的日期校驗(必填項)==========================================把錯誤信息寫進錯誤列表checkDateNecessaryKT& $' 2如果出生日期校驗失敗第 P 行的數據項🏌🏻: 填寫不正確!填寫格式為"$.xxxxxxxx"$.= ,如20131221,並且只能設置當日之前的時間(包含當日)🈂️,請檢查''-整體校驗時𓀁,如果有錯誤信息 A@Zk p  P R A@'g=================================執行的出生日期校驗(必填項)==========================================把錯誤信息寫進錯誤列表 checkBirthdayKT!  $' 2如果出生日期校驗失敗第 P 行的數據項: 填寫不正確!填寫格式為"$.xxxx-xx"$. ,如2013-12🐻‍❄️,請檢查''-整體校驗時,如果有錯誤信息 A@Zk( p  P R A@'g=================================執行的出生日期校驗(必填項)==========================================!把錯誤信息寫進錯誤列表 工具函數checkBirthdayNecessary2KT, $' 2如果出生日期校驗失敗第 P 行的數據項🔲: 填寫不正確!填寫格式為"$.xxxxxxxx"$. 🧏,如20131201,請檢查''-整體校驗時,如果有錯誤信息 A@Zk@ p  P R A@'g=================================執行的出生日期校驗(必填項)==========================================把錯誤信息寫進錯誤列表checkBirthdayNecessary3KT, p P$'K 獲取填寫內容 p P$'K 獲取填寫內容  $' 2如果出生日期校驗失敗第 P 行的數據項🧚🏻: 填寫不正確👦!填寫格式為"$.xxxxxxxx"$.6 ,如20131201🚙,並且要大于院系填報日期5個工作日,請檢查''-整體校驗時👴🏽,如果有錯誤信息 A@Zk p  P R A@'J=================================類型10 校驗電話號碼====================== checkphonesKT $' 第 P 行的數據項: 填寫不正確🧚🏿‍♀️!填寫格式為"$.區號-固定電話 或 手機號碼"$. ,請檢查''%整體校驗時,如果有錯誤信息 A@Zkh p  P R A@'L=================================checkOption 校驗備注 ====================== checkOptionKT B$' 第 P 行的數據項: )填寫不正確!長度不能超過200個字符,請檢查''%整體校驗時💁🏽‍♂️,如果有錯誤信息 A@Zk p  P R A@'\================================= 執行認定困難級別名稱校驗================================== checkDiffNameKT checkDiffName  $' 第 P 行的數據項: 填寫不正確!請檢查''(整體校驗時📖,如果有錯誤信息 A@Zd checkDiffName p P RA@k p  P R A@'X================================= 執行身份證件類型校驗==================================checkIDCardTypeKTcheckIDCardType  $' 第 P 行的數據項🈴: 填寫不正確🙌🏻👰!請檢查''(整體校驗時,如果有錯誤信息 A@Zd8checkIDCardType p P RA@k p  P R A@'v=================================14 checkGender 執行內容是否為“男”“女”校驗--================================== checkGenderKT checkGender 0$' '-性別有錯🧑🏼‍🍼,則無需校驗身份證號第 P 行的數據項𓀎: 填寫不正確🚶🏻‍♂️!請檢查''(整體校驗時,如果有錯誤信息 A@ZdpE checkGender p P RA@k@E p  P R A@'u=================================14 checkYesNo 執行內容是否為“是”“否”校驗--================================== checkYesNoKT checkYesNo  $' 第 P 行的數據項: 填寫不正確!請檢查''(整體校驗時,如果有錯誤信息 A@Zd谻 checkYesNo p P RA@k癈 p  P R A@'u=================================14 checkYesNo 執行內容是否為“是”“否”校驗--================================== checkSqyyNameKT checkSqyyName  $' 第 P 行的數據項: 填寫不正確👩🏻‍🔧!請檢查''(整體校驗時,如果有錯誤信息 A@Zd@B checkSqyyName p P RA@kB p  P R A@']=================================checkTerm 執行學期校驗--================================== checkTermKT checkTerm  $第 P 行的數據項🥑: 填寫不正確!請檢查''(整體校驗時,如果有錯誤信息 A@Zk菮 p checkTerm  $ P R A@'}=================================15 checkNumYN 執行內容是否為“是”“否”判斷是否必填--================================== checkSNumYNKT p P $'L 獲取填寫內容 p P $'H 獲取填寫內容 p P $'H 獲取填寫內容 是1,8,0'  $'d0?0,8,0'  $'  P p$^,X P p$^,Xk>k> 1,8,0,$'$@ 如果該項為非必填,並且為固定長度第 P 行的數據項: ?填寫不正確,該項不能為空🌽,且必須為數字,大于0,整數位長度不超過$位,且小數位不超過$5位!且成績排名次必須在成績排名總人數的50%之內🦸🏻‍♀️!請檢查'kh='0整體校驗時♒️,如果有錯誤信息 A@Zk(= 是  $ ?$ 1,8,0,$'$@ 如果該項為非必填,並且為固定長度第 P 行的數據項: ;填寫不正確,成績排名次必須在成績排名總人數的50%之內!請檢查'k<''0整體校驗時,如果有錯誤信息 A@Zk;k; p  P R A@'S =========================== 執行認定實發金額校驗================================== checkSFJEKT 1, 4, 0$' 第 P 行的數據項:  填寫不正確,只能填寫整數!請檢查''(整體校驗時,如果有錯誤信息 A@Zdp: $第 P 行的數據項🧑🏼‍🎓: #填寫不正確,該數值只能為5000🥸🍹,請檢查'')整體校驗時,如果有錯誤信息' A@Zd9k9k9 p  P R A@'r=================================checkAtLeastOneNNull 執行至少一個金額為非空--==================================checkAtLeastOneNNullKT  'A"執行 至少一個非空校驗 的單元格數目 $ =如果金額符合規則   ' R KTF   ' KTF   ' KTF   ' KTF   'n7d金額不符合規則  'F6執行 至少一個非空校驗 的單元格中內容為不符合規則的數目    ' kX7'T================================= 執行排名類型校驗================================== checkPmTypeKT checkPmType 1$' 第 P 行的數據項: 填寫不正確!請檢查''(整體校驗時,如果有錯誤信息 A@Zd(6 checkPmType p P RA@k5 p  P R A@'J==========================================================================checkBxkKT  $' p P$'N 獲取填寫內容  ,$'$@ 如果該項為非必填👏,並且為固定長度第 P 行的數據項💼🧚‍♂️: ?填寫不正確🧣,該項不能為空,且必須為數字,大于0👩🏻‍⚕️,整數位長度不超過$位,且小數位不超過$ 位🈚️!請檢查'k 4'0整體校驗時,如果有錯誤信息 A@Z $ $e ,$'$@ 如果該項為非必填🤾‍♂️🦬,並且為固定長度第 P 行的數據項: 4填寫不正確,必須課及格門數與必修課門數不一致!請檢查'k3''0整體校驗時,如果有錯誤信息 A@Zk2 p  P R A@'n2i2_--------------------------------------------調用正則表達式-------------------------------------x]VBSCRIPT.REGEXP$.7RegEx為建立正則表達式 (4 設置全局可用vba中\不用轉義  (.設置樣式 (5設置是否區分大小寫🙇🏿‍♂️。  %' 3 執行搜索測試.i 1-----------------------------------------------------------新版 校驗重複(說明已經沒有格式錯誤)------------------------------------------------------------V-----------------------------------------------------------1🍆、無學籍幼兒表先在表內查重(sheet學籍幼兒表 A65535 $^%>%!"'*cna = getTotalColumnCount(sheetIndexValue) `$^!XB@$1&每次校驗重複時時,把錯誤信息sheet清空,'b錯誤信息記錄開始行數X==============================無學籍幼兒表先在表內查重==================================0類似冒泡排序🛟📬,每個元素和在它之前的所有行進行比較 &   & * $^%X'( ,  & , * $^%X'. ( ..如果學籍號相同,說明是重複數據第 , 行的數據和第 &行數據重複!請檢查!!!!' A@Z*把錯誤信息輸出'0kx-p-h-i`------------------------------------------------------------第一列中 根據值獲取該值所在行------------------------------------------------------------根據值👨🏼‍💻,查找到值所在的行或列keyWord 查找的關鍵字'kbn 查找所在行或列 值為 “row”或非rowp'2]the find result object 4< @> DB A1:A65535 p$F%>%:.8 8 6row 8!"'2d+ 8!F'2kp+kh+i`+------------------------------------------------------ 向指定cell中設值-------------------------------------------------------------(1qazN p$FB@L  P J p$F%X(i*------------------------------------------------------ 執行碼表內規則校驗(允許為空)-------------------------------------------------------------value 規則類型value1 cell的內容校驗不正確返回false校驗正確返回true R0說明為非必填項 P$T'z()k )k)]'X某一個規則的記錄數 A65535 \$^%>%!"'ZB表行數' \ row$2'V=獲取規則類型所在行 & V Z & \$^%X  X 'Xd((y (k( & , V V X  , \$^%XX PX L判斷規則內容是否和cell中相等'y'k' ,#此時count數目為該規則所有的內容數目i@'------------------------------------------------------ 執行刪除某一行操作(excel受保護的)-------------------------------------------------------------sheetIndex 表名 rowNum 行號1qazN p$FB@L Z p$F%`B@b/ 把該行刪除- Worksheets(sheetIndex).Protect Password:=123i%------------------------------------------------------ 執行刪除某一行操作(excel沒有保護)-------------------------------------------------------------sheetIndex 表名 rowNum 行號  Z p$F%`B@b/ 把該行刪除i$------------------------------------------------------ 獲取指定的cell值------------------------------------------------------------- P J p$F%X!'i$------------------------------------------------------ 向指定cell中設值-------------------------------------------------------------@ 1qazN p$FB@L  P J p$F%X(i(#------------------------------------------------------ 根據代碼表中的名稱設置值(前提時🛏,名稱已經通過了校驗)------------------------------------------------------------- ]   P J p$^%X!X 'T'X某一個規則的記錄數 A65535 \$^%>%!"'ZF表行數 \ row$2'VA獲取規則類型所在行 & V Z & \$^%X  X 'XdP!yH!k@! & , V V X  , \$^%X!X 'P P TX 1判斷規則內容是否和cell中相等 , \$^%X!'h hX P J j p$^%X(yh d` P J j p$^%X(k0 ,i ------------------------------------------------------ 去除cell中的空格------------------------------------------------------------- ] 單元格裡面的內容]  3Blength1表示cell中原來的長度,length2表示執行去除空格後的字符串長度'默認為沒有去除空格2 Worksheets(sheetIndex).Unprotect Password:="1qaz" P J p$F%X!'P P'l lGzj*"如果單元格為空,則不需去除空格操作 P 'n%length2為空格第一次出現的位置 n如果字符串包含空格 P $p'P PX P J p$F%X('kizAttribute VB_Name = "工吆"  '-%校必填項若有錯誤信息顯示到 批⒅&( Function checkedRequiredStart(rowIndex, c olumn )  { '單元@格內容Dim cellValue As rS唍g= A;veShePet.Cs6If-" Then*丗抇綟al4seETrund If < E)鄝[寫日志 記 o矂o一個表kq坢writeLog(co鄋tent荾剗X`s(msgB)腫curMsgR纎w, 1)繨CK + 1?D D用紅色白痔錍犢E 匛RedVFnLen7@糒.Characters(1, ).F佮7.Color俵=31*SS 添加垼ǖ慊 骺肌崳〨` errafo唹addCHomm郠XQ#塻撫|", 矈,  0'Work s().Unprotect Password:="1qaz璒ey.A N( ..Itrior#=<65535 '1黃舌塵懊>%  d/.Visibl佇臓_櫠?刪E樘lears緾k螿"連跙 ?+0+ 5`&[!*2Recp)Nu8m A:Htff郥otal`?纔m u\4&鵘E15l lqXOO瑏 .ExlNondu(u_L?%蒏 是否4蟈*調用的方法o)beg萯nC翋_c#LHGp悜Method?廘凩恥wL袐Not3娒 '如劰鴴W失敗|?u$6 I剆 hing$判斷<為款/T\ 梂| 驦AOAa'舨粊🧑🏼‍🍼🙎🏿‍♀️,則去除當前乹,重新脒$ c廌t_ 詩 '清僉 al眞/ !. <' "Box @"第" &gD& "行數據鶼睿簯瞙'tt$成功則3!0有撩則劙褧&時的 r幜Cq+remo牼p繿ceFla(/做了Q空翊,則對其進行鶥崾:暈s,橶@校淙氳淖址Chr(34)%Q蔆浯& w"謤邪搜 ,系統已自動為您鵤%了瑖 A ]!qO?L?Y/根據標識符C 0X對應sX([)O-O?@把!ド寫進列表萩齏callFunctionXQStart(typeVal, sheetIndex, row$colHumn0isRidateCoun t) value = Wo$rk恠().繡ells(DtitleMsgGs窽,, ) '獲取昧斜磽返 拿f `"" Then '如果喜⑿械n/J - 1 L(ElseD脜剙thead瘋G=! ;丆埉End( Iff侫r膅s!"0"罦脜 Like "checkLen*婱整數長藍刃Q鏰膭D Mid嚊9& #EH%O 1H&NumL&@be鰎&& &@&提&值的LC&M%鉆b%Inta9?~n腅9- 'W9Term1㎜"是👭🏼、否"為比靨羈L"1 7 YesN -kk ?&葪>$ C$DiffNamej%困難鑒侗餉8$% G _&Cods必嗦l茤a `IDCar dT拉*'身份證件類型a6縈#;槆 e !8VSqyy申狼朐De_ < (e? ? kYearZ年蓧VE j疌]   kPmmc貺 ^,8,yy- GM:B黿k {  U   鼑Select Case)崆 '=11 執q浄強>誵?把錯誤信息鸚唇懀Gq 免 銖Null8U倞MethodXQ @Requi鴕edX癬礲無怭氞 Not 血 rerror吵"第" &6紶"!數據項 :F& "荒芪眨∏爰觳/ahasE`T俽'整體q愂保瑧從% fwriteL竜g E ' Box 5 gol d.RowO & Chr(10){ T澅b eginC懐_c纎mmentJ寅,?isF紀r.o+.2.學生姓名/_Ky-@{O removeSpxacep-總 '調用去嶄竦姆法釧閈)./k2=c3S魌u眏(2/6/6;/6V55呾5填寫不正確!必袗咢漢字🐜,∩碄笥1,820個尊址*_8_8凪> writeLog error`Msg  isValidateCount =" "+ 1vEnd If.beginCheck_ commeQsheetIndex, cMethodXQ, ro倃olumn A瞚sForrue '= 執行的硛ざ刃Q闉媗Case "a^Len"{叏removeEnter 墈t '饔萌コ爻檔姆椒-SpaceX翾).空格蔱繵:(value, functionArgs)(@If NotKy pThen ENIAr義Split(遼, ","#!(0)@50 褹璘B篸 1* '如果該項為非必填,並且為固|定翏3"叢@"`第" &萍"力數據項毫title狸填寫不 罰"可以為空👵🏻。勅嫋🥑,則"辣匭胛獮<1)位📆!莁爰觳軾VE╨se'n'2'帷範圍''!'''大于 扔3v(也牷超過1-2?-wE9-1T`jT?-TT鉚不臍茚T &S "Se&穥S犇Sf肟{箋&R`'R?) 弣hasE憛義 '1v時,馭有錯誤續畔(-蠆蠆4 埡r妌堐張繀寛(Number類續停┋h颹 Z 飣}F 燂}B_X|U0飣飣]j鍈oQ飡%oQ髸h& >h1鎨仯{數字,>0👨‍👨‍👦‍👦,整數無籷S遞翖悐(v}?●焛?VsQ //掅9T0飤cU7螷 蟄蟄蟄蟄  d蟄蟄咻`呱椐蟄P耈名次x30%!h遀==lL鑅PmmcU U痧U1VVw@ resul1鴊@etCell狔u1s鵛Q(5)@ '獲取0諶幋 If Not checkMethodX繯 ThenfunctionArgsArr = Split( ., ",")枺 M(0)P1p'如果該項為非必填⤵️,並且為固定長 度[errorMsg-"第" & rowIndex"行的數據項: title& "填寫不正確,丆不能為眨冶匭胛鄭笥0🙆,@整數位L瞏懷'峱1):位!小2∏頁績排名次 <在總人數的50%塚∏爰觳"岴ls頴漙`` ``E(``BE End If_jhasE漣癟rue '整體校驗時,寥有磤砦笮畔writeLog噯2W$Dval(`@ue) / result) > 0.5 Or$>*!!燩 C $ (?L| ̄瑳l_l1G,:/ <="+ 鞇@I奪u?幅 l;;;7嵓守纛 ?!?!雂縇/*}蹕= Fam蟃蟃蟃]蟃_ $乧beginC駱_comment@ sheetb, 洑,鰦olumnT!OisF蝟!決d@'= 15Name1備注判@斷是否!--?Case| "G瘖` 碢= getCellValueCou`ntXQ(諟, 3) '獲萣浤諶皺10P仮, 4瑳胟( 皡>=p *\@A悀 nW^R ^#Ra侎 "1,8,0vb&=#Stu免S|, a1 囻L a2"08 * 2Vk 暲S2sX!).!#詓(!5∨": 瘹 噅? 稐//'芍 輸入漢字,且字符最多為20罊/P/P/P\疧疧 %yset@DMBCodAY纄sNo",蔕7譔_*q?/V/V3/V/V鸘颱峇執行值範鷂У鳥箭 '把E啃磩進列表wI Case "checkVal8" dMethodXQ = (value, functionArgs)z怚f Notz歍hen2; ]ArrSplit( , ","zGerrorMsg@"第" & rowIndex"行的數據項✸:A title& "填寫不正確,該項必須為數字,大`于等觽'孴(0),♻️,且瞏懷齺+1∏爰觳閲徑乗hasEcaTrue '逍Q槭保綣寫砦笮畔 write0Log 匛 ' is緓idate`Count@ M+ 1End IfbeginC亖瀇comme@爏heetf, ,Flolumn肈 0isFo亴AK '=執為整數值<的罺 @把!`寫進列尡硭=熔Int讄繅軥 軶 咻琔>o+峗d= 0b '醀羕為非必填😁,並且為固定長度_廏U 錋_} Y}縺梢暈諣k賣羳👩🏿‍🚀,則!D_D{W2B 唬焵Else)1))++)_不能)且(鬵s(((h蟮捤 甪 _F咖ckE碸/f_T?Q cT身份證件號oT逺詨SfzjhRv resZjlx?getPCell`ku3kXLQ(筫, 8'獲取>內葹轃F)7G""6?4飮飮凲 鍑因E類型4_C_,邇邇_,#KO釠居民? sIsIDNuPmber%scg) ') = qt不符合#.規則OM?!!!!棭學 Oe/"/"/"/o"o"擀{擀o SO)? \4蠸FZJLX%哢n$嘣彉蟧"o"o"o"項Yx眽洃x吿1t18颸 $$$O$$o /:??_5/| 寫/|鋅/|髒鴣= 執行矸葜ぜ紘嘈托Q. Case "check郱jlx" :PMethodXQ = DMB(9, value@, "1")FI`f Not=MThen.}err orMsg:"" & row Index"械氖菹睿簛 title& "填床徽罰∏爰觳na3hasE43True '整鍋保果有錯誤信息桿wri纓eLog ZElse"set珻od娝, sPheetB>,艪, column亾End If@beginC羱_commentJ J},;isFobrDU '灖笛Ъ諾#辭8禭JH榽J9C@*Len(喅, 1, 50U盜p秮  \項不能為空🛑,且長度必須大于等于1渙不超過50焍%焎焎e 焏F揥橻\ck\ Я e焅隵芬鋅8ê\i@h把!%懶唇鴄列劚頄_Bank痏抆A舴?]"縗福為蔪鄭[a縡unctionArgsArr(0)!膰^q1c_ab``"焋'/0/0/縘/ e縘yE //+.!/鎳攴蒿..@x蔑.竈Year..饚E^#/f/鄲実/O孫屷+H/格式如2012、2002等蠉+廂幙 \)j+++++挘+?(+學年+++y妌鱯+++X膲*P******韻顥*-*3*****g j*******'*軋翺V_***郙onth***_咈 G**,*****01↑1OU*****鞽b ' PE nd If|beginCheck_comment sheetIn@dex, c2MethodXQ, row0olumn errorMsg^isFor = True '=類3 執行娜掌諦Q(非必填)<4把錯誤信息寫劷鴣列表 P@Case "qD郺te" 槦 hBirthday(value, functionArgsArr)弴螴f Not Then '如果出陝失敗$臺%"第" & j"罵數據項🎡:tit le@k填寫不正確👨‍👨‍👧‍👧🥾!伭格式為A Chr(34) x ,如20130221,請檢查"*hasEA媭*伭 '整體Ay勈眮果有n\writeLo黦 W烢[?? $f -菋牛āb:c%c" cNec纄ssary?dE呫;"dNow焍 焍*焍焍焍 x昩1俠並且只能設置當日之前的時間(惏琣)焔焔焔# 焔???谉c薧僣 d+d"de纘c+Z=鎂櫱焏焏驗焎 IO2%~乢焎焎焎渃-x?2刢-12/> /cc*/O1//曞M1/曱t1 ,_-22O2A 工具昂o3y謅24 44'f'o梄Qo桼3 唶纍o梠梠梠楊 o椷331皸3^ 333 33x3333憋3, c Lu3033_嗩33?3E/3?3 re)getCellV蔆oun0tXQ( 25@) '獲萺濫樬容su鬅垛27x >A>ry3(r樂s_r>>溴> _r_rt"誦做諆>·要笥讜合填報日期5個工作眨爰觳 " hasError = True '逍Q槭保綣寫砦笮畔抴riteLog eOMsg/End IfbeginCheck_comment sheetIndex, c MethodXQ, row `olumnNisFN靉 '=類型10 仸電話號 碼7Case "ephones邐sNum(@value)/I f Not I Txhen 8臝"`第" &T"行的數據項🌭:tit le|填寫不正確!伭格式為A Chr(34) 區號-固F 或 手旎H 荼>'螴ー♀COptionBQ備 P鍼CQcK崦P, 66_Q鈛_Qsg_Q丟UQ長炔荒艸200個字K浚唬縆#K玢燾k爾達? 執行認定困難級辣鵜漆烍L雑錡DiffN黙mQ燗!耑@C0DMB(', 丅, func乣餉rgs癛a 煠鏹ぃ踹渙z (縼@Else#逳setPCouj閤wPzoa髲T .O.衻O塩 /.=,.蓘矸葜ぜ1~.-.IDC繿rdTyp. .0惂...3 /0XQ蟉5r/0憕瘋瘋/0鵍 /0煪縓L/0/0!?0>0*_0猢)"o6_0_0_0鵢0or笵_0O,L14)Ge竢A`內容是否為“男”“女”2--823O圥T痐1"0"_//G9U)Id蟹C孕別佊,則螛扌桉C號44?稟69窂4 444L44$6b6F55?fG555線5565 _f0流5YesNo5$是5否5n 驗--=  Case "checkYes8No" <R@MethodXQ =B DMB( t, value, function Args)PIf0 NotGWTh en.噀rrorMsg~"第" & rowIndex "行的數據項: title& "填寫不正確🙅🏼‍♀️!狼爰觳s30hasE43True '整體校驗時,如果有錯@誤信息桿writeLog CZElse"sDet盋od嬓,@ sheet倈,唩, columnTnd If佊beginC亖_commentJ,;isFDorDU '14cB執心諶菔欠裎笆恰薄胺瘛繃g:縎qyyNam罌F坷坷_`_`_`梍`_`@: _`MBH`(-縛*潄 縛】`縛縛 c`Ter唌`醎學期縘cK}H結 4] 龘[ 慷慷慷慷慷慷獨0E?H:H*梨逰線KOV%15 2&郚umYNOVEV判斷必潭釹V='攩S(!result恇getCellVaP匔ountXQ(_?ex, 9) '獲~bt mc__T, 10鏾rsoogV1oo 皕 "樖"6Ya1@"1,8,0棦崪(a1泧廧F a2v08 転Tど2I GS%q抯(#).$s(銋#= "@YoC,㈱?帶篈rQ橲plit(留#, ","}(3= 1*'癲該項莂C,並且為固定鴣ざ葻 =E確1&熆熆熆惪琿荒芪眨冶匭胛鄭笥0,整數位 不硏齺p 盼蚧!小佅`(2)∩∏成績排名$次在總人數的50%之內/#瓦溈復oh C_r$鸑Av??S5亹L(mc) >徼(癥* 0.5)逽h '111111N1e= "第" & rowIndexP"行的蕗菹睿ltitleMsgl填寫不罰杉ㄅ琶偽 匭朐總人數的50%之內!爰觳"  !End If'checkMethodXQ = False6hasErrorTrue '逍Q槭保綣寫砦笮畔&writeL餺g e)m1beginC亯_comment sheet債4, JK,olumnD 1isF#芃!' = 蔥腥隙ㄊ搗⒔鴝顏X 6Case ".SFJE敆6uNum(value, "1, 4, 0")K丒狪f NotKH Then 臝C@x字荒蹵壅數犘瓳?V< E{i@&+,) <> 5000|&fd&W,該數$值!'為💏🚚,鱛'_~ 霤?-"-檫- Q {y邎嚠邎伊虉 $'>厒|AtLeastOneNNu ll至少一個為窢強-- =K%7(弻 攼aACou蠟= + 1 ' !🌭。 的單元膏袷克$#噔∧Poney舘A鎔Bq '! 穩瞎嬖5qtotalM鏏9+ Select ">c譫OIba爋jiaoBCR:iSum? ? _ hu餺shi H   z餳usu G  o鄑hers H  RRc*'?%醤 '2不3 =pG>6>>>中內容獓」@K扙u + + " 螶b`軾疿絋酫呂嘈捅 ["c濸mTyp>eo 2_框DM鬊(,3Kq焥熋So)瘖呱呱\焽x!O瀴set卑Cod%複,zU娔O6pj忀#o囎咚o嘔q,O爻蟃o囮 .+<8.Bxk_.O.`鈈1銅, functio`nArgs蛌result =囟 getCellValueCountXQ(sheetIndex, row$7) '獲取填茨諶 If Not checkMethodXQ Th endIfunctionArgsArr = Split( , "8,")K M(0)P1p'如果該項為非必填,並且為固藍ǔざW[errorMsg-"第" &啓"行的數@據項: title& "仱不正確瑏C不能為空,且必須為數字☠️,大于0L啦懷'峱$1):位!小 2∏爰觳";End If hasE丒繢True '整體校驗時🕵🏽‍♀️🧑🏽‍🦲,乚有磤砦笮畔writeLog EZ Else纝val(ue) <> Ares饀lt)b$_蘣骼A霰\ 峺 繃X'bYY🧑🏽‍🦳🚶🏻‍♂️‍➡️,aW課及格門數D與蘅蝍怖灰恢攏N%N#>2_6藭= F綼I_]_] _]E#beginC癬comment ┖j壖column$峻misFoa碼|'%ASel爀ct aFd0 '-&調用正則表0達式  ae reg(,羳:DimEX As O宐j+Set= Create#("VBSCRIPT.REGEXP")A'RegEx為建 EX.G鄉obal參E '設置全 摯捎肎'vba中\不 米錷 Pa鄑tern ` P ! 樣式 IgnoreCaseB/是袂執笮唷寫。paTest匵G'執行搜索p測試鄡h鴌ng#$o! 新版 Ah重複(說明已經沒有惛袷i) 1、無學籍幼兒表先在表內查p重 -;袛SameXQNew;鴼 }'r>w(naS翝s:.Range("A65@535").P;(纗lUp).酂 'c ota黮C睟Bh挙貦(msgNP ).!.ClearCont郔s '惷看五時憘 把U侭 清空,cua桼owP 1 '記伎夾惺蟎'=ocO'類似冒泡排序,每個元素和在它之前的所有行進行氨冉惜1Ti0 @startT瘛 + 2 To r nag4baby窱D1I岷2(i, c35喜 AjO@i - 1o32鬳xj x@歰q e! 覍+簚畔嗤琿:|是1;眹 U繈j穎負兔筰C{r@磮! 巠 ')輸出 傇:p況憆 Nexpt?昻OG/F第一列中 葜雕莞值所在行o` #@臻找到C的 謝蛄朽keyWord 冊墓丶謅bn"# 諤滴 “繦被蚍荝I ℅et@@O怐lR0x(By@H鷰, Str爁)AI燞ger[m-x1褍c檮 'the fi疑稱 o c@@杒";IX)6X1:fXF(What:= LookIn:=x#鸏, A xlWhol巈>@6r Isu 9 If kbn = "row" Then  GetRowOrColInddex竎. 榣se$v恥m 衳End@F@unctio1  '-2 向付╟ell謄猩柚3F I setC*ValueCountXQ(shedet, 搫cQ, v)噓W(orks).Unprotect Password:="1qaLz"Is(=).=鄠 媁5W執行碼表內規則校驗(允許渦)所在行CFor i % To1胋i, 3B?p'+ 1gG 彍#5orh(橬`ext ic!j.#+ c -i D CStr(j, 3)酠Ba估 '判斷(醖@是否和C犗等GA eSbS/)AIQj '聳眂J 課昧所|有僿邜焾  !翋刪除羃行操作(ex受保護祒模 8崸c p表名 Qah瀉湃耫ele黷e梨嵙`鋴烤簿O@ 踞 .D '把該行A")1' P~f12~3__U螟揮衠_o梍_髢 VNo 童m關ow?9烝0W[遲_ - 姷牟:瘖O8)g瘖-瑠=蜵癓$稹).飮摚鋰% _?Y漒磌ob澂x, 扭澬g/(/ 根據代!澲pZ名稱0彌擔ㄇ疤 崾保1已經通過了憱o 3包|含A5'ez RxeplQ"Et4+@  褳ETru鑸!y!|+zX  0   0   0   0 x  0   0 p$  0 (  0   0   0   0   <:4%DX%h$ h dD)hDJ$%DX%h$ h dDC)hD5龝px(VlhD0   0         rU , `1//( `Q0( `Q08 `i1////0! ` i1///<I `i__SRP_b餢f __SRP_6J__SRP_71/////<q `i1/////, `)9//( `Q/0 ` iq8 `i9////09 ` 9///,a `i//, `i//0 ` i///8 `i9////8 `9i////0) ` i///nrU~| prU $"聲" Public TypalueCo8lum8p '列索引號c@nIndex As I@ntegerT酶 P'S喣ngEndn _ '定義一個結構🆒,描述數0據頁"onst shee蕋{V1 豴1 '/ATJ僁兏郊2政策落蔪低臣苺 m8sgS8 b錯牢笮畔8 噐o填表 說 3Area習3氡韻Kdme0totalCount塉乽記錄總男Q槭  $startT坕tl翄7 ' 表頭所在行 atLeaOneNNulD '執行 遼倭t非空A 的單元欄袷肯\中內容環瞎`嬖虻腏;Money;Varia>'每一行合計中的值K Err or@ -時👐🏽,/A>A{C/ e Ms>gAD厖 rgoldRang@e '---A輝諛?櫓褘 幽母跳出FTargen 進入臯侓剄functi@onArgsh'0長度">@存儲方法參數的字符串fisSaveButton}CA時關閉按鈕has(}Boolean倇'臠中是0否有7 TheSa@擾兄複的IdN\um]n 卛da啷胈槔無效行前,保存表>燶狀態checkMet鄅odXQAA1丄0的返回鑂冦aRowS恿0= `r+鋅祭x!磰x纀abyID"篔8= 3 '學蓘Ъ裴位置 Di餸 isay)i醾 為空%n%Ar尶錘眯>螤行п ! 5個必填凶侄蝐 竴炬&removeSp繿ceFla俵:去除空膏癲僮骼y巂莯綣鴴$了則*tr@ue👨🏼‍🏫🫸,否f衋lse3e翓@a刢中最2)的!t聰`妹揮薪凶遠磧沒武ao?之Csc ur 匑*)Long '上磝渦磁F釋!8,應該項目初始化時併值一次F rna 錋'總死,嚫c列1^isFO).在荼曄兜饔貌煌0)C繟 判斷;莊or循環 C_Sele BFCh袽中需要用到該變罻^,headIb凃'+省樞邢氐缺& S眖sV9= 2 '打q的鹵 繼"鴸notti鴑ueQ$AqJ1硩Plu"S6104 '隱藏!纁增加ge r6性別 羾s birt恏day= 出生日期獉8Hh @陘P @陘* n @陿*0BrU~|      !h寶齉pe R__SRP_10__SRP_11 ;N z廭>? "(P`hpx B   (HPX`hpx &0Xhpx B  (  B  @PX`hp xB  JJ H X  h                n P h B  , $  梺&xRRME (@t0>6 <HthR0tohvOfN陳z`H陘~@蕵0B蕗X @蕗 4 @陘D @獉<L @代碼表%錯誤信息說明%陘V  @陘Z  @陘 \  @陿HB鈥X@鈥p@蕗d @陘x@陘z@蕵B陘H~ @陿jhB!陿B#%B陿xB陳`HpH陳|pH蕗 @陘$ @獉8Hh @陘P @陘*T @陘0X  @陘^ @陿*0B陘` @陘bt@陘| @陿\ B陿pB"H 80pXpHpH 0X價$p88S儎_*\R1*#253$*\Rffff*0>634bbcb0(*\Rffff*0>634bbcb0\044    08  @ ` Dp 8 0 P0pD084P. ..(8(`>"$$@>`R^FX `*0$`   列索引號^列名稱 ^0p@定義一個結構,描述數據頁i]$騂=Public Const sheetNamevalsueTJ As String = "附件2政策落實統計"]$錯誤信息2Public Const IntroSheetName As String = "填表說明"]$代碼表H]$說明] p 記錄總的校驗數]$記錄表頭所在行] 0"執行 至少一個非空校驗 的單元格數目] 6執行 至少一個非空校驗 的單元格中內容為不符合規則的數目] X每一行合計中的值] "至少一個非空校驗時,記錄錯誤單元格] 錯誤信息] %---定義在模塊中🛷,記錄從哪個單元格跳出] 8---定義模塊中1️⃣,記錄進入的單元格]  長度校驗時,存儲方法參數的字符串] 記錄時關閉按鈕]  記錄總的校驗中是否有不符合規則的]  記錄總的校驗中是否有重複的] #記錄總的校驗中是否有重複的] %/記錄遍曆無效行前,保存表中是否有錯誤信息 的狀態]  #保存校驗方法的返回值]$)遍曆記錄開始的行號]$H)學生學籍號開始位置]駾0記錄為空的數目]X"/看該行是否為有效數據 統計 5個必填字段為空的個數] p"C記錄去除空格操作的執行結果,如果去除了空格則返回true🧑🏿🤸‍♀️,否則返回false] Pcell中最原始的的內容,即系統沒有進行自動化處理用戶輸入的錯誤數據之前,cell的內容] 7上次寫錯誤信息時♏️,所在的行,應該項目初始化時初始化值一次] 總行數] 總列數] R在根據標識調用不同的方法時🙇🏻,判斷是否是for循環 Cell_SelectionChange中需要用到該變量]$記錄省市縣等記錄所在的行]$+代碼表sheet的下表是否繼續]  ]$hH)隱藏列的增加數]$) 性別所在列]$p+出生日期所在列降Attribute VB_Name = 歫梺~xME(6 << <` `@ I僷 `I働 I僐 `凾 0` I儢 @ `p I儢 I儼 @ @`  I儢 @ `  I儢 @ P` I冣 I冧 @ +H` i儤i僇`敋H`8H`劄`&`劆 `  I儢 @ 8`  I儢 @  `x I儢 @ ( ` I儢 @  `h I儢 I儼 @ 8 ` I儢 @  `x I儢 @ (`  I儢 @ `h  I儢 @ 0 ` I儢 @ @劗  `p I働  I儼  D0 `  I働  I儼   `p  I働  I儼  0 ` I儢  I優   `p I儢  I優  0 ` I儢  I優   `p ''I儢  I優  ( `  I儢 @  `h  I儢  `  I儢 @ x`@  I儢 @ `  I儢 @ `0 ""I內 PI働 pI僇 `勈 `勌 `刵`勎`勑`勔`勗@勩 `勜 @勞 `勡 @勣 `勦 @勨 `  I儢 `勪`勬`勮@  ` %%I儢 I優   `` I儢 I優 @ !` ! I僷 I働 8I僇   0 @ 08( 0 P( (x80 H0 儛P% ""(4XS儎_$*\Rffff*0C634bbcc6C  B       (  B         !"#$%&'()*+,-./0234W689:;<=J?@ABCDEFGHI5KLMNOPQRSTUgXcZ[\]^_`abdefh~ijlmnopyrstuvwxkz{|} "  H(  p  x   "     "0 X ` 4p  0 P B h p *x        B   (  B 6(8@HPX |`  B  0(Xhpx x  (B @ H Xx x p B  |  B $ (0 |8  B  lZp |  B    B :@Ph    ` B        .B      ( .B  08@HP XB  &@HPXD`4 8@HPX `B    & H P X `  h   (   "    D 4@!x! !!!!!!!!! !B """ """" "" "" # (# <0#p#x# ## #B @$H$`$ h$&x$$$$$ $ $"$ % % % $(% "P% x% % % %%%%%% &>& X&4x& & && && & `' 'B ''''''''' ' ( (B (( ( ((( ( ) )B )) ))**** * (* * *B *++ +0+8+@+H+P+ X+ + ,B (,0,8,X,h,p,x,,, , @- `-B x- &- $- - -&.*(."X.$..(../0/P/`/h/ / 2//"/080  @0X0p08000 0B h1p1x111102 P2`2h2p2x222222 2B X3`3x3 3&33333 3 3"4 (404 $84 "`4 4 4 4 444455 5>(5 h545 5 55 55 5 p6 6B 666 6&6777 7(7"07X7h7p7x777 7B 77 7 78 808H8P8`8-----------------------------------------1 檢查必填項,若有錯誤信息顯示到 錯誤信息sheet中--------------------------------------- 空時返回0 不為空時返回1 單元格內容] P R p$F%X'T T'd'ki-----------------------------------------2 校驗學生姓名 要為漢字-------------------------------------------------------------格式不正確返回false格式正確返回true $T'zk]^[\u4e00-\ue863·]{1,20}$'  $ 'd'ki|-----------------------------------------3 校驗出生日期格式為2012-05-09(允許為空)---------------------------------------0  ,如果為非必填項'd'kzk]reg = "^((19)|(20))\d{2}-((((0?[13578])|(1[02]))-((0?[1-9])|([12][0-9])|(3[01])))|(((0?[469])|(11))-((0?[1-9])|([12][0-9])|(30)))|((0?2)-((0?[1-9])|([12][0-9]))))$"^\b[1-3]\d{3}-(0[1-9]|1[0-2])$'  $ 'd'ki|-----------------------------------------3 校驗出生日期格式為2012-05-09(不能為空)---------------------------------------](^((19)|(20))\d{2}-((((0[13578])|(1[02]))-((0[1-9])|([12][0-9])|(3[01])))|(((0[469])|(11))-((0[1-9])|([12][0-9])|(30)))|((02)-((0[1-9])|([12][0-9]))))$'  $ 'dX'kHi@-----------------------------------------3 校驗出生日期格式為20120509(不能為空) 校驗函數---------------------------------------@]^((19)|(20))\d{2}((((0[13578])|(1[02]))((0[1-9])|([12][0-9])|(3[01])))|(((0[469])|(11))((0[1-9])|([12][0-9])|(30)))|((02)((0[1-9])|([12][0-9]))))$'  $ 'd'kiz-----------------------------------------3 校驗出生日期格式為20120509(不能為空)---------------------------------------]8^((19)|(20))\d{2}((((0[13578])|(1[02]))((0[1-9])|([12][0-9])|(3[01])))|(((0[469])|(11))((0[1-9])|([12][0-9])|(30)))|((02)((0[1-9])|([12][0-9]))))$' $/ $ / $ ' $/ $ / $ '  $   $ d  $ 'd'kd'kd'kih-----------------------------------------4 校驗身份證號碼---------------------------------------符合規則返回true不符合規則返回falseP]790584216379058420加權因子] 10X987654320校驗碼 $T$''去除空格]0 J * 6)如果幼兒身份證號為空,則設置為通過校驗規則'zk Gzj $$Gzj *[0-9X]Gzj &  &$' G 'j   &$  '   ' $ 8  $G'jiz-----------------------------------------校驗身份證件類型 -------------------------------------------------------------格式不正確返回false格式正確返回trueH]"^[\u4e00-\ue863a-z|A-Z|0-9]{1,30}$'  $ 'd'ki----------------------------------------5 -校驗杏悦2杏悦2標識碼 42位,最後一位為漢字或x-------------------------------------------------------------格式不正確返回false格式正確返回true] ^[1-9]\d{40}[\dx]$'  $ 'dp'k`iXz----------------------------------------6 -校驗戶籍性質 -------------------------------------------------------------格式不正確返回false格式正確返回true8].^(\u519c\u6751)|(\u53bf\u9547)|(\u57ce\u5e02)$'  $ 'd8'k(i u-----------------------------------------7 校驗入學時間-------------------------------------------------------------格式不正確返回false格式正確返回true]'^(((19)|(20))\d{2})((0[0-9])|(1[0-2]))$'  $ 'd'kxipq-----------------------------------------7 校驗年份-------------------------------------------------------------格式不正確返回false格式正確返回true(  ,如果為非必填項'kxzpkh]^((19\d{2})|(2\d{3}))$'  $ 'd 'kiq-----------------------------------------7 校驗月份-------------------------------------------------------------格式不正確返回false格式正確返回true] ^((0[0-9])|(1[0-2]))$'  $ 'd 'k i v-----------------------------------------9 校驗學籍號-------------------------------------------------------------格式不正確返回false格式正確返回true8]^\d{4}[0-7]\d{3}[0-3]\d{7}$'  $ 'd 'k i v-----------------------------------------10 校驗電話號碼-------------------------------------------------------------格式不正確返回false格式正確返回true]freg = "\b((1(([38]\d)|(4[57])|(5[0-35-9]))\d{8})|(0((10)|(2[\d]))-[2-9]\d*)|(0[3-9]\d{2}-[2-9]\d*))\b"R^((^1[3|4|5|7|8|9][0-9]\d{8}$)|(0((10)|(2[\d]))-[2-9]\d*)|(0[3-9]\d{2}-[2-9]\d*))$'  $ 'd 'k i v-----------------------------------------11 校驗銀行卡號-------------------------------------------------------------格式不正確返回false格式正確返回true(]^[1-9]\d{14,20}$'  $ 'd'ki-----------------------------------------checkXn 校驗學年如(2012-2013)-------------------------------------------------------------格式不正確返回false格式正確返回true] ] 1^(20\d{2}-20\d{2})|(19\d{2}-19\d{2})|(1999-2000)$'  $  -$'$$ 'dh'kXdP'k@i8-----------------------------------------checkOption 校驗備注如(長度小于value2)-------------------------------------------------------------長度不小于200返回false 否則返回true0 P'z@k8 P  'd'ki------------------------------------------------------比較大小(小于等于返回true)----------------------------------------------------------------'value1大于value2返回false 否則返回true PX'P X' P  'Dd'Dki------------------------------------------------------比較大小(小于等于返回true)-dec---------------------------------------------------------------'value1大于value2返回false 否則返回true0 P$4'P $4' P  'd'ki}------------------------------------------------------校驗長度--------------------------------------------------------------- ,$'' $/如果為非必填項'kzk ,-下標從0開始,其值為指定的數組維可用的最大下標 $$4 $$4'zkd 說明是校驗固定長度 $$4'zkki}------------------------------------------------------校驗整數---------------------------------------------------------------0 ,$'' $/如果為非必填項'kzk $& 如果不為數字zp .e+如果包含小數點z@ $4e% 如果小于0zk ,-下標從0開始,其值為指定的數組維可用的最大下標 $$4 $$4'zx kp d 說明是校驗固定長度 $$4'z k k i ------------------------------------------------------校驗數值範圍--------------------------------------------------------------- ,$'' 'z8k0 $) 如果不為數字z $4e) 如果小于0zk $4$$4 $4$$4'zkxip------------------------------------------------------校驗數字長度(Number,可以為整數也可以為小數,不小于0)---------------------------------------------------------------0 ,$'' $/如果為非必填項'kPzHk@ $% 如果不為數字z $4e% 如果小于0'zk$'+整數部分最大長度$'.小數點最大位數 .''' "說明沒有小數點 $4' $$4'zkd 如果有小數點  . $'D單元格中數字的整數位  . $' $$4 $$4'z@k8k0i(-----------------------------------------checkIsInt 校驗不小于0的整數-------------------------------------------------------------格式不正確返回false格式正確返回true ] ^0|[1-9]\d*$'  $ 'd 'ki-----------------------------------------checkIsNumber 校驗為Number類型-------------------------------------------------------------格式不正確返回false格式正確返回true( ' $'ki-----------------------------------------checkMoney 校驗金額0-9999,整數-------------------------------------------------------------格式不正確返回false格式正確返回true ] ^(([1-9](\d{0,3})|0)|0)$'  $ 'd'ki-----------------------------------------checkMoneyTJ 校驗金額0-9999小數點後一位-------------------------------------------------------------格式不正確返回false格式正確返回true]`^([1-9]\d{0,7})$'  $ 'd'ki-----------------------------------------checkPersonNum 校驗幼兒園人數至少一個人------------------------------------------------------------格式不正確返回false格式正確返回truex]^(([1-9]\d{0,3}))$'  $ 'd'kxip-----------------------------------------checkIdNumLink 校驗身份證號中性別和出生日期與用戶填寫的是否一致------------------------------------------------------------格式不正確返回false格式正確返回true If colIndex = jhrIDColumn Then checkIdNumLink = True Exit Function End If]%性別和身份證號上是否對應]$出生日期和身份證號上是否對應]日期第一次出現的下標]"性別,單元格之內的內容]$身份號截取的內容]!出生日期,單元格之內的內容] "身份號截取的內容]8P#出生年份]h%出生月份]] $' $'  (倒數第二位為奇數,則為男性男 P  x$^,Xd倒數第二位為偶數,則為女性女 P  x$^,Xk $' $' $' -  -  P  x$^,X'i0-----------------------------------------3 校驗出生日期格式為2012-05-09🧑‍🎤,不能輸入未來時間(不能為空)---------------------------------------]@]X]p]^((19)|(20))\d{2}((((0[13578])|(1[02]))((0[1-9])|([12][0-9])|(3[01])))|(((0[469])|(11))((0[1-9])|([12][0-9])|(30)))|((02)((0[1-9])|([12][0-9]))))$' yyyymmdd$'   'zk  $ 'dh'kXiP------------------------------------------------------校驗數字長度(Number,可以為整數,不小于0)--------------------------------------------------------------- ,$'' $/如果為非必填項'k8z0k( $% 如果不為數字z $4e% 如果小于0z k $'+整數部分最大長度$'.小數點最大位數 .''' "說明沒有小數點 $4' $$4'z k d 如果有小數點  . $'D單元格中數字的整數位  . $' $$4 $$4'z0 k( k i ----------------------------------------- 校驗學生姓名 要為漢字-------------------------------------------------------------格式不正確返回false格式正確返回true  ,$'' $/如果為非必填項'k z k ]^[\u4e00-\ue863·]{1,20}$'  $ 'd 'kx ip 去除非打印字符; P J$X'  $.   MsgBox addr  !%' MsgBox addr  P J+Xk i 伒Attribute VB_Name = "校楹" '-%1 觳楸靨釹,若有錯誤信息顯 示到 sh`eet中$兛帳狽禱0! 不為1 Function checkRequired(bIndex, row coluDmn ) '單元格諶Dim cellValu@e As S弉g= Work5s8).C s(;If2咐" Then0並 g蒄alseE妠Trund If 濫牓-2"羵學生姓 要為8鶴& !格式不正確盜uf7'At1憢wStu仺(vg肅pRTrim?"嶳1IDS8Exit GIP亞re儌 ^[\u4e00-\ue863·]{1,20紏$瘟 '@ C力(, /L|(_坬弡R2亂箋3 =出生日諏1為2012-05-09(澡市懟o)?"蛃Birthday5, f剋Arg餾ArrdrVC$,/9+0b* '如果為非C懆jB-`.龍 km)pJ2oIM闙' G"^((19)|(20))\d{2}-(0?[1 3578] 1[`02]))-9a[12][0ac3[01 (( 46"11Y# 0?2 )))e^%\b[1-T3]309碷|-c)馽5稹23d_Yd(不能dG udNecessa別dcr怱B2B0@9B[ |(3 鎘 / PgP1 5w9k / 遌r@/ / 鵪R05@R 睺a斚 覴 2TnM 逜翧 ?Op橝 2Cx d 褲  a02 ?1 ? ?<3 , su? 6堼?Oa/C鵒|(裛??aMidr 1, 4) +0 "/"PU5,T 2_7$bs鴘, QQ巷'P囆're]f_*`蘦@'DateDiff("d", a, b) > 7 慵綣3 ~嘖N---p!%na黠S颯o 9//,嘜腿724A 2Q矸葜ずx怕?>穩瞎嬖駻莙'不I斎 IsIDNumb爀r(By0 yп, 厘掑)仭BooleaぽConst W' "790584P2163"2'加權因子 c10X98765432C蓲 '碼& = UCase(覶Mr)) '去除空格  Dim s As Integ爀r, i 4T4腎f colIndex = babyIDColumn And IDNumber6"" Then溏果幼兒身份證號為空,則柚夢üQ楣嬖NaIsLFalse Exit Functi詏nE乫 !璍en(H) <> 18僈@Not Isberic(Mid, 17k厑Like "*繹0-9X]剢UFor= 1 To 17 亙禩CW@) W0僩10Bss + 媋i! * T Ne xtCs Mo0d 11CRi(ghtI@)#c,l TAD)妅T渞u@k乧h'-%羶嫾類型AA& '格式不正確嚳禱豧儞Bt,+ checkSFZJLX(`value^佁reg僅D"^[\u4e00-\ue863a-z |A-Z|纝]{1,30}$"員- C(, CBQC ;@肧綞柿K 蒃麓`5A ec-1學`曄堵 42位,最後一位為漢嘧只騲4846r4chCode4[1-9]\d{40}[\dx2C[2 22 '#6H2戶籍嘈災 8.伌.FamTyp.^(\u519c\u6751)|3bf\u95D477ce`e02)?222d=2G?2*$7 d葊胙奔811RXDat1^(((19@20))02})((0醝]@12])Ock縅}l13?r唓+睯V/N 縅--$鎳攴蒿_bHckYea"r鉍, f堿r鄃sArrDc爐R^相d懽3= 0磢'0斘潛靨釹釹pcqI{髴i O夆jo Kpk@"%19$|(23}#`t## 焠p##4鏾#月#Mon黷h縦 :::?咟ck@/#!b:E邿_9盧蜓恔號O忥XJHS,4}蠵7褌3u37o//c@{Q#?10僫電穢昂怕隣Pho\ne澇?5'\俠癷(([38⌒h4[57Qi5pL35k8}050p2P滒j-[J2r*[3{2}g)\b浞gK^1[3|4|5|7|8|9]@瘼8}$Q蟭8!!ck!?!x""o4- 11 校驗銀行卡 號 *< '袷講徽販禱豧al宻e*&truFunction checkBank(value) Dim0 reg  = "^[1-9]\d{14,20H}$"If)CKFT(-, K 餞hen%Tj&鯰侭 EQF僞 End I鴉 ]k+ Xn%堆如(2012-3) 劙XnW]乣yea宺sPa(20` 2}-)|(1N9CB9900)oi@hSplit', "-"D咥c|B (1) - 0) 1L| 區= 莬藑K ?H~ D弸纔= g?婩uB,Op偳C綾缸尦ざ刃小于偡2嶀 D不! 200 v穢裨蜥憉##31紻m23$ 4b12""2ai-4e玲Exit 'oJg3Le刐D>2!孈oFe}搱邎蛚冉洗笮(♂7等于6)線$@7大eMa ⒐ uCompa宺e鰾BCIn{1菷2郋㎎'J郎9c 87虄?具*-X5decO:5C %h 馾Dec,g1= Cue1 r??!o弞'眤!Ria朓, fd怉rg苨iArrp觩鹹@q,Iq褿O3w縓" 缻@(u0"S '如潛靨項7曚bKEPv蠨p UBound(砞 '下標從0開始渲滴付ǖ氖槲捎玫嗄最大 q鉷&) >.<皣X) A@B<s駪2))焔=?_oq]!5 '@說明是.鍋潭ˋ.1o  [ @9整數? @鰋@ &;@@愒渙 瞈繍@0.@@b@R@@ Not IsNumeri磌53J不為}>舟,凹 I0nStrcp0." ) <> 塐包含小數點{oO 6`gq= 0 -p?P!8?P?P0Pb組維可用的最大下 標 If Len(value) >= CDec(functionArgsArr(1)) ˋnd T<T2T0Thenn乧heckInt = True/ E`xit F.E fElse '說明是校驗固定惓ざ葥 媶啞p,p1ow{'-2罣數值窐段F E#" AValC, I)嘺 溊凷plit , ","縟  FazGq碄"" 觠H摕詂崢A蠢Not IsNumeric呌A '如晃智(E聵}A瘈B @04小于0$FL u0d7鈪.^/賫e0^淵鉤字醾(8ber,可以為 瞔小@數,不".)\ 韈c [c,@ c幟燘:0)@ 蒓為非編靨釹鉺Z=#tl蠶4X>Aa`n餹 園 \黰,!bmax犪'駙,飅 '部分狴o貭Double2) ' !,點位數intgthAInStr(".)W 餦ue瘳Gdou P%亂沒有 ?$快`P ( ) O婘I!9鑔+ +1^砛o 5 PMid1,  - 1單元格$中Qg的#位達!h+pC 蠐灓u_?0Uq莋 o梠` Is悲羐DeC?@格講徽販械回fs'Q5~t露 毬C%朌纈m regp'"^0|[1-9]\d*$"[pC〖(, 磰 6H 狂/鱆Hk?o梩爃衹 A為鵠嘈蚠???犗癬j鶍 = 8 ?嘖??_Money 金稅0-9,酔___' ++((+(\d{0,3})|0!_,k_,*H_,,V,TJ=#t後晃/-5 '格講徽販禱豧alse#*&tru$Function checkMoneyTJ(valu e) Di`m reg  = "^([1-9]\d{0,7恾)$"If)朇IW(-, K Then%T mPTE  Fc End 餓f 卆p,PersonNum 校驗幼兒園人數至少一鷥鋈5羴/們咾 bHb3})礲GB|= c 縞FW俢IBdbLink僣矸葜ず胖行員鷙統鏨掌謨胗沒鈈吹氖欠褚x恢0秈+(B, rowIndex, colwB男@'珕糺hrIDColu鬽n唐'練 E)3兞Exit 嘸9a ed !!yisGe@rRight As Boolean &',.上A+對 應噕Birt&h3和]le ngth2Integer ':第一次出現的下標5 gV!String,單元格之內@的內容61號截取b |B;year, Varian坱 'a年誹month, 月day, i %arrE-1繳Mid17, 1[ g= H 8%琅A Mod 2` 1b@X倒數第二位為奇數,則為泥亣匸Sheepts(sBoB71).Cells(GsC#o) "男浤譇 E嘞,偶%P女性?x?m騨"女)$ ?! , 4"!, 5, 2x _, 颵18 " 0 + "-" +*ppw 廚騹縸氵]--3"}:褠為2012-05-09,荒蓯淙胛蠢詞奔(為空) WNowNecessarzyn{sS@c盩t竔me`鏛PN邩袠(19)| (20)) 2}(0[13578]p1[02]p))((0P[ 12][03[01P469="1P02)G坄= F@ormat(, "ymmdd"d( @頡 > :!PV*0o )oㄟ◥w_2%@ ┛+_$!,數字ざ(皯ber,可以為1I不小于>0/+,um"1#,, f嫋Ar実s–iArr繱plit(y,uc }芭"1\(0QT0 勭果為非必填睿4u)g甕? $z?栣@ Not Iseri阠c)( 舶l1 彲,裩 CDex<=  顮 1@maxIn0tLen 1) 'a&部分8佘驛(Do0uble0!(2)小|汜位t數i牋I鎛繯5'".i# 婤u0Kdou!1%E說明鵜揮袚 r@胯(%) Bc oa5*澆True Exit Fun ction‥nd If 6Else '如果觻行∈vintValue = Mid(v , 1, InStr".") - 1) 'ピ裰惺值惱堼位ZdouZ-W++ k Len(匯) <= CDec(f剤ArgsArr(1)) A儊<艞2The敡壠checkNum1怓a獣T犡< 捹膓G|'-% 校驗學生姓名 要為漢字 '格講徽販p禱豧肁Bt 睧- 侻StuN癮me1E懮l)肣儗qYSplit妛, "," 81廵If B盄"" SyL(0) 0 猛為非編靨釹顡|!擈褃1壣Dim 8reg^[\u4e00-\ue863·]{1,20}$"訪 C乂a1(,!)L!A嚕 -'%? !'コ譴蠐饋字符 @moveEnter(sheetIndex, r膐w$col"`>addrCel鴏s(2 C奰枴, Ch紝0)bBinaryCompare) > <'Msg養ox #! $Ap`Pca.Work.Cl餰an(AdR  S' !CrU 0` i1///(`9/,`9//(`9/(!`9/,I`)9//,q`I(`9/(`9/( `9/( `9/,9 `9//(a `9/( `9/(`9/(`9/(`9/,)`i//,Q`i//,y`i//,`9//,`9//, `9//,1`9//(Y`9/(`9/(`9/(`9/(`9/0!` ///(I`9/,q`9//, `9//0!` i///nrU $`$`作表數目不正確🧝🏽‍♀️,請下載最新模板後,再進行此校驗A@,1qazN$FB@|k1qazN$FB@L1qazN$FB@L1qazN$FB@L `$^!XB@$-$每次開始檢查時👨🏽‍✈️,把錯誤信息sheet清空,'b錯誤信息記錄開始行數'.該次校驗中🧑‍🦽‍➡️,記錄是否有錯誤出現(幼兒信息表中) (' #默認認定困難級別名稱未通過校驗' 默認認定日期未通過校驗 `$^!XB@$-$每次開始檢查時,把錯誤信息sheet清空, A65530$F%>%!"' 獲取列數方法xcna = Worksheets(1).Range("1:1").Find(What:="*", After:=[a1], SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Column IV5 6%>%!F'FAILUREA@f&+獲取是否校驗成功標志單元格🧝🏻,並把值初始化為0'空記錄數初始化為0 * 2" 保存時執行d 開始校驗按鈕事件時執行.您確定開始檢查嗎? 檢查過程中👨‍👧‍👧🍼,請勿關閉excel, $.否則      !"#$%&()*+,-./012345678:;<=>?@ABCFHIJKNPQRSUVWYZ[\]^_`abcdefhijlmnoq可能導致數據丟失或檢查失敗 0溫馨提示$, 2d1qazN$FB@|kk.$F!b(l)把頁簽設置為無色   "沒有查找到學生信息🍓,無法進行校驗!A@,'*1qazN$FB@|k'該次校驗中,記錄是否有錯誤出現$F!中錯誤信息如下:A@Z   &  '<"執行 至少一個非空校驗 的單元格數目';6執行 至少一個非空校驗 的單元格中內容為不符合規則的數目''' 5"至少一個非空校驗時🗣,記錄錯誤單元格'9是否為有效記錄 'C記錄下校驗改行前👩🏿‍🌾,是否已有錯誤';記錄性別或出生日期是否有錯 ,  ,$F%X!'O第一行中標識的值'2=判斷for循環中是否調用callFunctionXQStart 若沒有則執行默認方法 <如果標識符不為空 -$'G格式如1;4-3:2;5 :$'H6格式如3:2🕴🚠;5將獲取到的標識符進行拆分,拆分成行號和規則 DJ如果需要兩種及其以上的類別需要校驗(如默認校驗規則和第三行自定義校驗規則)   Y&+1是因為數組中第一個元素為默認校驗規則 $:$'V*將獲取到的標識符進行拆分,拆分成行號和規則$'S自定義標識類型所在行 & $;$'c自定義標識類型的具體值   g對標識符進行遍曆 $ & , A@}根據標識符值🦗👩🏿‍🎤,調用對應的方法k  $;$'P將獲取到的標識符進行拆分   W對標識符進行遍曆 $ & , A@Hk@ eJ 格式如3:2;5$'Q自定義標識類型所在行 & P如果標識符中的行數等于當前行數$;$'e自定義標識類型的具體值   k對標識符進行遍曆 $ & , A@根據標識符值,調用對應的方法kd-只有默認校驗規則格式如1📏;4$;$'H將獲取到的標識符進行拆分   O對標識符進行遍曆 $ & , A@Hk@k8 & ,$F%X( , 6執行 至少一個非空校驗 的單元格中內容為不符合規則的數目   第 & 行的數據項: 中至少有一個需填寫正確!請檢查''8整體校驗時🚔,如果有錯誤信息 A@Z  'd   'T每一行合計中的值k  <,一行中如果五個關鍵字段全部出錯🙌🏽,則將該行刪除 & +  ',"將錯誤信息表中的該行錯誤信息刪除掉  b  b b  `$^%`B@br 把改行刪除  b  'b 'k &k   6 刪除無效行 $'  A@^B 把改行刪除dP   A@^H 把改行刪除k  (N -梺UxME<6 LL L"L < 4 `X黭P匄z@匉h @匋X x@匎H @劶8 @@( @ ` `  `" `8 `$ 凍%0X8 F,`^b @ @酤 @瀨 @0軋 @H寧 @`逮 @x @旫 @匎 @ t @p @ ` @ P @@ 6f*2.@h0 @ 0Z @ @  @& @忑 1@H犖 `1@聽 P^0@,箭 @p H:@滮 p:@岧 @p| @l B@0\ HB@L @X< p0H@, XH@( XJL@ P@ P0R@@ XY@x櫝 h@Y@[@攸 x_@賽 _a0pe@更 @ @@橖 Xs@堻 h@sx@uy@x @h {@X {H S儎_$*\Rffff*0<634bbcad*\R1*#385*\R1*#125*\R1*#119*\R0*#17$*\Rffff*0>634bbcb0*\R1*#114*\R1*#42$*\Rffff*0?634bbcb1*\R1*#121*\R1*#253$*\Rffff*0@634bbcb1*\R0*#2*\R0*#f*\R0*#1 h"hp:x.6" "H.p )  :+ ;8@;H;h;>;" : "P, `$ >;,] ( ~@$UP1 8Xx W ; @ HP.=X  ,+; **R8 h%0 %D % % %0 % P%,p%& #6M$J $"h (,3 (P3 (` (,L,p 4JI <( <? 8 D6HH D0& HB< D @ ,  ,0  48H( 40&` 8 < 4 0 )" <( <<0  H6H@ H0&x PB< H < (",8H(,0&`0 <, ($$M  < "8(L7P(&( ( )$  > ,`,p (,&40M, ,,   (8(@h x*+$,  `7` h4+p=1 4  $(+P=hP1,4+=(1@P X ;` ; ; x" @HX2h$@6 @*P :   ,HPX ha--------------------------------------------點擊開始校驗-----------------------------------------]@]X+某一類型的標識(包括行號和類型格式如3:1;2)]p 標識數組(默認標識還是自定義標識)](某一類型的標識數組(包括行號和類型格式)] 某一類型標識的具體值]自定義標識類型所在行]%把記錄為空的行號放進該數組] F!X'"獲取工作表數目 0工   此次校驗中刪除了 :行無效數據(姓名、身份證件號列校驗都失敗即改行為無效數據)A@,k *有錯誤信息🛕,請查看“錯誤信息”表,進行修正A@,$F!b(l `$^B@Hd( '0A@ 0'%執行校驗重複數據方法,如果沒有重複數據遍曆看是否有需要刪除的無效數據 校驗通過!A@,.$F!b(lSUCCESSA@f:+獲取是否校驗成功標志單元格,並把值初始化為0 A@Hd *有重複數據,請查看“錯誤信息”表,進行修正A@,$F!b(l `$^B@Hk k 1qazN$FB@1qazN$FB@1qazN$FB@o8 q-------------------------------------------------查重複方法某一列------------------------------------------------ ]`x] A65535 V%>%!"'2總行數Scripting.Dictionary$.&O8O  V%>!'(>獲取學生姓名列所有數據 * (%"對學生監護人身份證號列數據進行遍曆 * * &%,-如果身份證號不存在 * &B@.&#add方法,第一個為key,第二個為valuek8 k0 ( !0'"Sheet2$FG:G7>B@$ " !%4 !XG17>,2q. oAttribute VB_Name = "主絛" '-(點擊開 夾Q&l Sub 測試所有:規蠆⒋蠐〈砦笮畔() Dim rowDataNum%typevalsue '某一類型的標識(包括行號和格式3:1;2)?bsT '數組(默還是自0定義CvalEntity8?: 7,的@具體值媓R0ow '>乢所在行isNullArr(500) As Integer '把記錄 盞膩伔0進該丳 sheetCount嚸俉orks. '獲」ぷ鞅硎堼目 If H <> 3 Then羗 MsgBox "G不罰胂略刈鈈履0搴螅俳寫藖@犅"(1).Protect Password:="1qaz 罝Exit 罉#繣nd IfKUnpH 2).h 3_ Sas(m sgB佱).Cell繻learCotnts '看瘟丶觳槔時,把蓚` 清空,C7cur]翋= 1 'G A樾數 hasError=Fals`h該碆瘟/中, 欠裼!出現(幼兒醨表 膆Application.ScreenUdpdng sysDifficultyGradFla0纀 o認定困鴨侗鵜莆賜ü!!cindeofy 乪O日期M?,?,-, rna薍Range("A65530").N(xlUp).. 椕俬拎/方法DcW 1:1F(What ]*", After:=[a1], S`DchOrBdAxlBy>s1Dir e2:=xlPrevio剈s繩olum則b$1.$IV5伷ToLeftks緓 T廬XQ 2,A8, "FA繧LURE"儏aG!7成功標鏡ピ瘢閻黨跏薊0熋 茩闌 +繟空P `x isSaveButtonvbOK鈳 喔4媸敝碋E耑耝`影磁ヰ事件)剠 儠("您確定儊乵嗎? 過程c請鴯乇誩xcel💒," & Chr(1`& "否則可艿賈率荻Щ蜥0失敗7Can`@&溫馨銻崾") c"艠緻 kO煝 嫝廡筈KTab繾PlorIP8x -4142羏頁┥柚夢8奚 b2startTitle\ +PIlb c揮脅檎業 窖1G,0無法!bQ%!_Q!%ee`9Qh廢>脧U嘦Q1writeLog + 3慡`'"植Y如鶼攏?->  {Fb唅2 ToaP atLea0OneNQ= P>: 至少襽桓齜強氈 的肂梿OP翲中內容為不符浜廂У?totalMon糴y&ew麗F "? "餟佱R憐Sis`\i鄗e親慬為0恭1鐭5/InE '下前,Q已C0w??9dcbT嫳員鴰虺鏨~鶤}-j龕 1,衟W=9(1, j ).讕q傻諞火行中憔ゾ_$is = $判斷for循分醒 調用callFuncXQSV 若鶓S則5碧梿燴w 凹p&QZ '綣 符不!/哉= SY (o-o'C1;4-3:2🥃;50昪捽 ":c綊說劍岱鸄d0拆分縕P成?c怦?UBI杏d(S) 00s"需要兩種及其以上的類別肣Q0(如和第三玄蠸遀點O ?Fo柎r m = LBound(bsType) + 1 To U '+1是因為櫓械諞桓鱸匚閑Q楣嬖 0valEntity峉plit(m), ":") '將獲取到的標識符進行@拆分,硛尚瀉藕7偱匷t丷owDJ(0?自定鍋=類型所鷦諦3v4"0If iS匵Th黣n)'@>bGA1羈;羈薆的綻嚀逯Fpor n@)#H'對莯遍曆=callFunctionXQStart (n>1, i, j@sValidateC蝷t '根據C$值🧛🏿,調用對應的方 法&&NextEnd If! me aAYsA?= Fa餷se 焂M5哤C氞w爤"W祱? U U rSoS逹 縈縆E=?蛂ow閬<> 0?k袷餃繢3:2📬🙇🏼;5_e嗆 熀 v 羆W) '如嬓的行扔詰鼻癮3E?_惡o?__4__?6_ i_____9:慩'只有)灨B91;4'廦廦顫//O$O$O$O"O"M" ?oWorksheets(1).Cells().Lock|ed怞聑 = j}'執行 至少雅非空q 的單元格中內容為不符合本的數繌UatLeaOneNull泂泜fA0懐= 6?塵errorMsgP"第" &籃& "0\數據項6篈rE"辛有需鈈湊罰∏爰觳"GhasC= True '辶時,e有錯誤8畔OwriteLog /=S=^T+ ?/~!僌ntotalMoneyLSu戭+ '每一@湎賤菩砟鍰O4?決},c>1鯧 'A中五個丶侄穩砍齟恚蚪眯嘈刪除 is+辦Arr(∑Num) )ic %isNullRowNum = 8+ 1 &P'將錯誤信息表中@的該行 境+PFor p朿urM$sg -alidateCount To ,oSheets(msgNamHe).8s(=).Delete '把改行q+pNext peH=妡is +h asErr[= InEnd If :i5僸0亅 - 1 '_無效 行!@|rowData尲Arr(Dq)If D!h躤n^ 艞d聤1, )廍ls阤 -遃;3;qw&j6> 8>(爚Box "此次校驗傊bl了" &k & "行?數據(姓名🧝🏿‍♂️🙅🏽、身份證@件號列秬際О薌碼u湮"-feTe覨牐請查看“參”表,絸行拚 Worksc1).Tab.ColorIndex`b672汼`Qct7鬔 `S FaA揙checkXQNew (1衕q'NotE n0 '執A;馗磥7方法,綣揮兄'遍曆詞欠裼行辱要醼的;兣3C通過!/!謀/-41427 setCell牘ueXQ 2,A8, "SUCCESS" '獲 取A成功標志單元格,並把值初始化櫛0 聁綈FGna(? ,u,,,,,皔,;Protect Password:="1qa苲 2).:3 Subp '-!2某一罭羞  ;(2;Dim myDic As (Obj,KeyVarianrCB4, vaFrQu|rna癈A ctive.Range("A65535").P(xlUp).@q '總行數仯*Set idpz = Cre`烻 ("Scripting.tio鄋ary"咷e" = "O8"08O@ ).val唘牅8學生!d 列所有據!圗ach c腶ra In '對監護算g羐qMA^盝 鄴V<> ""> 酨酭e .EXxis獎) 'qRe不存詭1Add,  'add#,第一窣鑫猭ey二*鳚qSsSmy"=C$. srWithj 4"!2W!G:G!ClearContentc 0 &1Resi竮e(+q鵠)&@pplica1!.Fun@(on.Transposa #1 'c0= `hP& !: __SRP_2Yv__SRP_3"ShowFormSheet5~ni 9YL+梺nxME(SPSSS0{E46EA0DF-4728-4693-8DA3-DE215144288D}{5C101A65-3261-4F6D-8DCB-E349688881B6} 8@ <%侢 %@@rU~| H   i 9Y @ )  q9  `@!9Qq i Yya a  I)酤$  0l酤齣瀨(瀨]鸃+'t'旫'逮:瀨N軋軋 6軋逮旫t;:寧%p(瀨%$  dp)p;:寧%p(瀨%$  dp )p;:寧%p(瀨%$  dp )p;:寧%p(瀨%$  dp )p;p:瀨 %$  dp逮 裏 )p5逮 { z" $   (瀨` (瀨P;p:瀨 %$  dp逮 裏 )p5逮]羷撅%:寧%p(瀨%$  dp軋>逮A旫Uz)p6軋逮旫U瀝溜%'寧%:瀨%$ ⒃pp逮"鋤)p6軋逮1:匎Ntt(旫(逮(軋0 6 軋逮旫t0 (瀨 u琿W 軋 ''0:Ntt:瀨 軋逮:寧!旫^6 軋逮旫t0r;:寧%p(瀨%$  dp)p=(寧繹%p(瀨%$  dp軋"C#)p5軋 un+'t'旫'逮:瀨$N軋軋 6軋逮旫tz;:寧%p(瀨%$  dp)pzRp(瀨%$  dp軋%:寧&逮` 旫 '/ )p6軋逮旫 u ( uD寧犖 (瀨( (瀨) (瀨* +, :瀨+- (瀨聽uz.z/(箭uD寧滮P M(寧%箭龘 @p(瀨%$  dp軋 A逮0h)p5軋z1h:瀨+]鸃 3:瀨2N軋軋h 逮 3逮X/ 5軋3:瀨4N軋軋h 逮 3逮岧/ 5軋X5IL,X5ILi|X5I齣寧\齗I| @X鼖:寧4N逮逮軋 旫 3旫H/ 6軋逮(瀨%H( (3zH(瀨%H鼖:5N逮逮軋 旫 3旫8/ 6軋逮&85IL齣L85I齣寧,齴<L @8蛟(q酤聽箭(逮l酤旫 6-(6軋逮旫 L~,3 |~\齔 u1GH(瀨%X鼖:5N逮逮軋 旫 3旫8/ 6軋逮&85IL齣L85I齣寧鼼<L @8蛟(q酤聽箭(逮l酤旫 6-(6軋逮旫 L~ 岧5I= (瀨%岧( (38 H(瀨%岧鼖:5N逮逮軋 旫 3旫8/ 6軋逮&85IL齣L85I齣寧櫝8 <L @8蛟(q酤聽箭(逮l酤旫 6-(6軋逮旫 L~櫝 H(瀨%X鼖:5N逮逮軋 旫 3旫8/ 6軋逮&85IL齣L85I齣寧賽 <L @8蛟(q酤聽箭(逮l酤旫 6-(6軋逮旫 L~賽 M黤匎%龘 @箭龘 @p(瀨%$  dp軋 C7)p5軋 箭滮O")(瀨]<軋)(/逮'旫 7:瀨8軋:寧9逮-旫::t,6軋逮旫tz,軋 '5軋聽(瀨麛軋聽 更*麛軋更聽(瀨]鸘 U " (瀨麛軋 &v 齣瀨聽麥軋v i堻 Mv 齣瀨聽麥軋%p:寧 %$  dp旫;裏<)p5旫 堻@ v 齣瀨聽麥軋"{ u.z 犖(x (瀨麥軋X黌 x"漰zx(瀨]3 zM寧@(軋逮 = 6軋逮M ,kzD瀨x溤旫旫(逮t = 6逮旫t x~X  (瀨]鸘 7'0't'旫:瀨> 軋:寧?逮 6 軋逮旫t0uG +'t'旫'逮:瀨@N軋軋 6軋逮旫t=(寧%p(瀨%$  dp軋"C#)p5軋1p:瀨 %$  dpA)pzB(軋逮 C6軋逮 uB7+'t'旫'逮:瀨DN軋軋 6軋逮旫t=(寧繹%p(瀨%$  dp軋"C#)p5軋1:匎ENtt(旫(逮(軋0 6 軋逮旫t0,M匎@(旫(逮(軋t F6軋逮旫t+'t'旫'逮:瀨GN軋軋 6軋逮旫t=(寧%p(瀨%$  dp軋"C#)p5軋1p:瀨 %$  dpA)p;:寧%p(瀨%$  dp)p;:寧%p(瀨%$  dp)p;:寧%p(瀨%$  dp)p$V%忑犖滮l\<,櫝攸賽橖堻hX箭P|XL岧x更h聽`H8( 4 ( p軋逮旫t00   fS儎_ " 0 8"HP Xh x取消錧' B@:R聘 oH確定t鍯6儢@ >' B@:sfd55oPAttribute VB_Name = "ShowForm"  鳥as|0{E46EA0DF-4728-4693-8DA3-DE215144288D}{5C101A65-3261-4F6DJCB-E3496B81B6} dG lobal奡pacoFalse 奀reatablPredec$laId覶ru BExpose0TemplateDerivCustomiz婦'取消 P Sub CancelButton_Click() notContinueBool員 Me.HidZEnd! @ '確定 ,o渘f諒,-Fl;/<jx梺h#<%{M榪笸E)鍰狒, F 溢6噣F┯禎錸x 溢6噣F┯禎錸%{M榪笸E)鍰狒,ME(SLSS6"N0{00020820-0000-0000-C000-000000000046}(%H凗` %偁@ %`h8@``0S儎_$*\Rffff*0A634bbcb14xòAttribute VB_Name = "She@et5" 鐱ast0{00020820- C$0046} |Global!腟pac扚alse dCreatablPre declaId玊ru BExposeTemplateDeriv$払ustom izD2rU 9ya)4__SRP_c__SRP_d BPrintForm_VBA_PROJECTq8$`rU @nHLO梺蕵xME(SPSSS0{58A7FD64-A773-46F3-9006-AA8B0581EAA0}{5D1A906A-1E09-4E09-8F83-ED2561E42042}p0(%侢X0 %0`S儎_x嵐Attribute VB_Name = "PrintForm" " Bas0{58A7FD64-A773-46F3-9006-AA8B0581EAA0}{5D1A906A-1 E09-48F83-ED2561E42042} dGlobalSpacoFalse 奀reatablPred恊claIdTru BExpo se0TemplateDerivCustomiz婦R磤0* pHd VBAProje坈t4@j = rowIndex6d` columnIndex錚` cellValue@砢 ActiveSheet%N`Cells峘(writeLog{u`content鎙`Sheets ` (msgSheetName'` (curMsgRow/` (writeLogRedm`nLene,` Charactersrg`FontU` ColorIndex魚`(addCommentXQStart礢` sheetIndex ` errorInfo` AddComment屟`Interior;鋊Color2F`CommentHs`(clearCommentsXQStart7胉 ClearCommentsf萡sheet2RecordNum`ffTotalNumColumn`xlNone棼`(beginCheck_comment;D` checkMethodHd`(errorMsg'|`(removeSpaceFlag` (cellContent娕`(callFunctionXQStart typevals#`isValidateCount8`value銴`titleMsgh甡 (startTitle頻` (headIndex` (functionArgs8M` (checkMethodXQ緮` (checkRequired碽`(hasErrorf譧(isFord╜ (removeSpaceXQ` (checkStuNamec骮 (removeEnter`(checkLeng痐functionArgsArr紑`Split)`(checkNumh糮 (checkNum1%`resultur`(getCellValueCountXQc骮val葩`result1庺`a1k\` (checkStuName1`a2l\` (setDMBCode竏`(checkValK鋊(checkInt癄`resZjlx0臽 (IsIDNumber-*` (checkSFZJLX*`(checkDMB粎` (checkBankUw` (checkYear6`(checkXn` (checkMonth嚐` (checkBirthday≮`(checkNowNecessary拱`(checkBirthdayNecessary2稉`re鬪`su)_`(checkBirthdayNecessary3窊` (checkphonesNum埬` (checkOption,躟 (hasErrorIdNum艦`mc9^`rs_`(atLeaOneNNullCount欷` (checkMoneyi漙 (totalMoney%篳baojiaoMoneyColumns`baojiaoMoneySumk餪huoshiMoneyColumn_礰huoshiMoneySumr`zhusuMoneyColumn_` zhusuMoneySum>-`othersMoneyColumn攛`othersMoneySumH訿(atLeaOneNullCount竊 (atLeaError妦` (regCheckFuncE鵣reg蝋regEX* CreateObject鴬`Patterni衊 IgnoreCase0鵣Test4瑒(checkTheSameXQNew` sheetIndex2n`(rnaO蟕xlUp犵`row壪` ClearContents{躟i``babyID1犍` (babyIDColumn`ja`babyID2膣` (hasTheSame僠(GetRowOrColIndex穎`keyWord‵`kbn1╜cZ`Findn餪What酑`LookIn襊`xlValueso醏LookAt癘`xlWhole侍`Column爄`(setCellValueCountXQ腯`colIndex嘸 Unprotect?`Password鷂`value1`flag淊`Trim@颼rowData1`Count0v`rowNummR`(AreasheetIndex扝` (deleteRow`Rows`Delete竫`(deleteRowNoPro`(setCellValueXQ給` codevalsue` (columnPlus紓`length1S`length2T`Replacef` 聲明廼`(!ValueColumType` columnNamew籤(sheetIndexValue1` (AreaSheetName繾(readmeSheetName啂` (totalCount-`(rgold礰(hasErrorInValidateU鮜 (dataRowStart硴` isNullRowNum8`(cna`(notContinueBoolt` (genderColumn鄜`(birthdayColumn0` 校驗函數&轥(checkBirthdayNecessary嚶`aX`DateDiff£`IDNumber4 `Wm`UCase5 `sj`Tk` IsNumeric$*`蘟 *\G{000204EF-0000-0000-C000-000000000046}#4.1#9#C:\PROGRA~2\COMMON~1\MICROS~1\VBA\VBA7\VBE7.DLL#Visual Basic For Applications*\G{00020813-0000-0000-C000-000000000046}#1.7#0#C:\Program Files (x86)\Microsoft Office\Office14\EXCEL.EXE#Microsoft Excel 14.0 Object Library*\G{00020430-0000-0000-C000-000000000046}#2.0#0#C:\Windows\SysWOW64\stdole2.tlb#OLE Automation4*\G{2DF8D04C-5BFA-101B-BDE5-00AA0044DE52}#2.5#0#C:\Program Files (x86)\Common Files\Microsoft Shared\office14\mso.dll#Microsoft Office 16.0 Object Library*\G{0D452EE1-E08F-101A-852E-02608C4D0BB4}#2.0#0#C:\Windows\SysWOW64\FM20.DLL#Microsoft Forms 2.0 Object Library*\G{8986389F-0FBA-4FB3-B0F1-2B93242220E0}#2.0#0#C:\Users\lurenjia\AppData\Local\Temp\VBE\MSForms.exd#Microsoft Forms 2.0 Object Library.E 忇.`孧  S儎_  梺 ThisWorkbook0=634bbcb0!ThisWorkbookzLx Sheet10?634bbcb17 Sheet1逪? Sheet60B634bbcb1A Sheet60SbpS剺葔04634bbcadBSbpS剺葔Hq錧wQ齉pe0@634bbcb1L錧wQ齉pe艄`O餢f0>634bbcb0r餢f&x!h寶齉pe0C634bbcc6!h寶齉pe~爅;N z廭0<634bbcad;N z廭Ux`-ShowForm09634bbcad7ShowFormn1 Sheet50A634bbcb1A Sheet5hPrintForm0;634bbcadCPrintForm蕵`Hx0je>蟽L嘄燑6Ob胇 H鬥$碋恖椡i躊h颪礏)軐Iy筰蘝)孒:瓐願┝32║J?鏏=濔頚喯橙貐5W廝藏S3褹瞤us捫RU礿D緸羀}0鬸]壹K癬m雂摻f ^E/O樄&d劑2DP梖bA榋撯I43黃 b!8compare Excel+` VBA麾`Win16羱`Win32`Win64x`Mac巢`VBA6#`VBA7#` VBAProject究`stdole揱`Officeu`MSFormsC` ThisWorkbook|鉦 _evalsuate賎Workbook_BeforeSave l`SaveAsUI篪`Cancel駱` (isSaveButton謾`MsgBox桼`ChrK~` vbOKCancelx?`vbOK%`(測試所有校驗規則並打印錯誤信息瓛` Sheet1`Worksheet_Activate+乣Worksheet_SelectionChange4`(Target現`Range ` Sheet6` 打印預覽繶` (Browse_Prints歚 Worksheets鑒`Visible隊` PrintPreview諱` 工具函數絗(checkedRequiredStart齊`Right ` (checkSchCode逵` (checkFamType睖` (checkRXDate*`(checkXJHF餪years檿`value2` (compareDecN豟 maxIntLen1` maxDoubleLen煿` intLength`intValue卄douValue郹 (checkIsInt鵕` (checkIsNumberG` (checkMoneyTJC巂(checkPersonNum `(checkIdNumLinkUz`IdNum>` isGenderRight ` isBirthRight浛` genderValue骮 genderValue11` birthValue` birthValue1~`year6n`year1w昤month`month1裳`day`day1;`arr u`st(_`timeNowy` timePrint`Now%篳addr`vbBinaryCompare虧` Application*`WorksheetFunction&`Clean咄` 主程序矮` rowDataNumn禶 typevalsue嫭`bsTypet萡 valEntity軓`typeRow頯 isNullRowArr/骮 sheetCountB譧Protect譮`ScreenUpdating! `sysDifficultyGradeNameFlag`indentifyDateFlag `xlToLeftWY`rowType鱜md`ne`Locked ` totalMoneySumZ哷pg`qh` (checkTheSameg鑐myDic穙`myKey`varData`idNumDick` idNumDicData臂`cardNum‐`Exists僝`Add鱮`Keysq竊Resize@4` Transpose桌` ShowForm殗`CancelButton_Click`Hide9z`ConformButton_Clickwf`Flase祊` Sheet5` PrintForm`Workbookk` BeforeSave壑` _B_var_Chr\;`_Defaultj耟!_B_var_sysDifficultyGradeNameFlag__B_var_indentifyDateFlagE` Worksheet窿`Activate梶`SelectionChange鉵`_B_var_isNullRowNum;r`_B_var_i _B_var_isValidateCount"`_B_var_j _B_var_rowType淂`_B_var_m _B_var_n_B_var_totalMoneySum鳼`_B_var_p_B_var_qA !s C 7AC M7"@ p0(P7爳q YX!耙HH  dir'V__SRP_0__SRP_1!9ShowForm(%~閱彽癢菽彽r S儎_ J< rstdole>stdole h%^*\G{00020430-C 0046}#2.0#0#C:\Windows\SysW OW64\e2.tlb#OLE Automation`僂OffDic凟Ofic侲殌丒2DF8D04C-5BFA-101B-BDE5E訟AC42圗gram Files (x86)\Common \Microsoft Shared\oC14\mso.dll#働 16.0 Ob伳 Libra宺yNMSForms>SF獉rms3〥452EE1-E08F1A-8-02608C4D0BB4橳FM20.DlLLH'B @a&/;"1l蓃傾萺00}#0聄# 50 嚴A8986389F-0FBA-4FB3-B0F1-2B93242220E@FUsers\lurenjia\AppData\Local\Tem@p\VBE\U.8exd<@".E 忇.@`孧 磥傇 梺偩ThisWorkbookGUT纈@lW耼kbok 2 H誃1傗莉B,zL""+BsSheet1*G Se@atn1 w2 ?S爡 逪 6 6% 6 6   打印預覽GSbpS劙樔e2j舘 qp !(e) 工具函齝 錧wQ齉|pec ec eo O3`\艄k 牱鱃;餢lf"a2fo o&&校崖殮!h寶e'eo 爅o ~k !L主程序GbQ;N z廭6b2o -卭 U2Show翓G`6ow鋒ャ3e2ro1餧n鉕( 甽5璣55璣5縙)h鮑^ Pr(intCr0in恮Eb筳2o眃┛0蕵rU~~~y        SaveAsUICancel  (TargetrowIndex columnIndexcontent sheetIndex errorInfo checkMethoderrorMsgtypevalsisValidateCountregvxcel &TR颯齹黐魜penc"N1Yb纇錱1Y% )n衏:yTabColorIndex " g錱~b0Rf[u酧o` 鄀誰蹚L!h寶Name -N曪嬦Oo`俌 N  value - : ; Locked ,{ L垊vpency checkStuName -N髞\ gN*N梜X橯cknx鮦纇錱Rows Delete dk!k!h寶-N Rd枂N :L堗eHepenc覻 T0珟齆翄鯪鱏R!h寶龕1Y%峴S9eL:N鄀Hepenc * g曪嬦Oo` 鮦錱 w 曪嬦Oo` h 蹚L堫Ock Select !h寶惽! SUCCESS * g蛻 Ypenc 鮦錱 w 曪嬦Oo` h 蹚L堫Ockq x q  %{M榪笸E)鍰狒, 溢6噣F┯禎錸 au﨏樛akJ庶J2CR矲撼 髵 checkRequired checkBirthdaycheckBirthdayNecessarycheckBirthdayNecessary2checkBirthdayNecessary3 IsIDNumber checkSFZJLX checkSchCode checkFamType checkRXDate checkYear checkMonthcheckXJH checkphonesNum checkBankcheckXn checkOptioncompare compareDeccheckLencheckIntcheckValcheckNum checkIsInt checkIsNumber checkMoney checkMoneyTJcheckPersonNumcheckIdNumLinkcheckNowNecessary checkNum1 checkStuName1 removeEnterlI@0FC:\Windows\SysWOW64\stdole2.tlbalue sheetIndex2keyWordkbncolIndexvalue1flagrowNumfunctionArgsArrresuIDNumbervalue2 functionArgsIdNum.E 忇.`孧 C: }t rms qq Microsoft Forms 2.0 FormEmbedded Object9瞦mp\VBE\MSForms.exdrowVERSION 5.00 Begin {C62A69F0-16DC-11CE-9E98-00AA00574A4F} ShowFfD&o$&CompObj'EaVBFrameGorm Caption = "UserForm1" ClientHeight = 3180 ClientLeft = 45 ClientTop = 375 ClientWidth = 4710 StartUpPosition = 1 '所有者中心 End  }t  Microsoft Forms 2.0 FormEmbedded Object9瞦VERSION 5.00 Begin {C62A69F0-16DC-11CE-9E98-00AA00574A4F} Print揔*   rU~~~~~~~~~"~~~~~~~~~~ *}壋夢隓僥W焒靏  儕a   儕a  A儕a  )A坅 `1QAq )Qa坅   " 1iAi1Ii!Ai 9 Y 坅 a儕a    VBAProject ThisWorkbookSheet1Sheet6打印預覽工具函數聲明校驗函數主程序ShowFormSheet5 PrintFormF /C:\PROGRA~2\COMMON~1\MICROS~1\VBA\VBA7\VBE7.DLLVBA ) Q0F:C:\Program Files (x86)\Microsoft Office\Office14\EXCEL.EXEExcel Range !I@0FC:\Windows\SysWOW64\stdole2.tlbstdole aPL續-鶾藉D轗EC:\Program Files (x86)\Common Files\Microsoft Shared\office14\mso.dllOffice Ai`.E 忇.`孧 C:\Windows\SysWOW64\FM20.DLLMSForms qqp8唹砄榜+$" 4C:\Users\lurenjia\AppData\Local\Temp\VBE\MSForms.exdrow Qqy測試所有校驗規則並打印錯誤信息 checkTheSame F欇Q?8貯C殗@韝FL=灷麼ФhHJ>DFWorkbookWorkbook_BeforeSave @ .╜/f&Tnx\亯軴X[鍕excel 俌軴X[ 鮦筽鸔 nx歔 , &鹼邁\亯蹚L埨h錱!h寶 俌 N軴X[ 鮦筽鸔 諷坢 ? 曪嬦Oo` 鉔xh 魦f , 00 $4DHLPdVBE7.DLL q `  q S FFq F 0錧\Oh坧e顅 Ncknx 鮦 N}g癳!jgT 峇蹚L坉k!h寶 1qazPasswordProtectUnprotect CellsClearContentsF A65530End IV5Fo▅75嶯;3. F3?]^鉇暵7瘂DF WorksheetWorksheet_ActivateWorksheet_SelectionChangeFF FAILUREcheckedRequiredStartwriteLog writeLogRedaddCommentXQStartclearCommentsXQStartbeginCheck_commentcallFunctionXQStart regCheckFunccheckTheSameXQNewGetRowOrColIndexsetCellValueCountXQcheckDMB deleteRowdeleteRowNoProgetCellValueCountXQsetCellValueXQ setDMBCode removeSpaceXQ 4╜nx歔_薡纇錱T 纇錱菑 z-N 鮦RsQ頃ePrintForm-*癢菽彽 卩膹底fL&o)+CompObj,MaVBFrameOPROJECTwmTPROJECTXSummaryInformation(0gForm Caption = "UserForm1" ClientHeight = 3180 ClientLeft = 45 ClientTop = 375 ClientWidth = 4710 StartUpPosition = 1 '所有者中心 End ThisWorkbookThisWorkbookSheet1Sheet1工具函數錧wQ齉pe聲明餢f校驗函數!h寶齉pe主程序;N z廭ShowFormShowForm打印預覽SbpS剺葔PrintFormPrintFormSheet5Sheet5Sheet6Sheet6ID="{00000000-0000-0000-0000-000000000000}" Document=ThisWorkbook/&H00000000 Document=Sheet1/&H00000000 Module=工具函數 Module=聲明 Module=校驗函數 Module=主程序 Package={AC9F2F90-E877-11CE-9F68-00AA00574A4F} BaseClass=ShowForm Module=打印預覽 BaseClass=PrintForm Document=Sheet5/&H00000000 Document=Sheet6/&H00000000 HelpFile="" Name="VBAProject" HelpContextID="0" VersionCompatible32="393222000" CMG="4143EDEBF1EBF1EFF5EFF5" DPB="82802E6D728A728A8D76738AA24B12227B90682C5BD3408C0FBFC9DAF46C7E3CA6B84635ED" GC="C3C16F2CB12DB12D4E" [Host Extender Info] &H00000001={3832D640-CF90-11CF-8E43-00A0C911005A};VBE;&H00000000 [Workspace] ThisWorkbook=0, 0, 0, 0, C Sheet1=0, 0, 0, 0, C 工具函數=0, 0, 0, 0, C 聲明=0, 0, 0, 0, C 校驗函數=0, 0, 0, 0, C 主程序=0, 0, 0, 0, C ShowForm=0, 0, 0, 0, C, 26, 26, 820, 501, C 打印預覽=0, 0, 0, 0, C PrintForm=0, 0, 0, 0, C, 52, 52, 846, 527, C Sheet5=0, 0, 0, 0, C Sheet6=0, 0, 0, 0, C 鄥燆鵒h珣+'遲0@H\p  lurenjia lurenjiaMicrosoft Excel@&灼@}[膹底脹諟.摋+,0HP X`hp x  國家勵志獎學金資助業務名單申請代碼表 錯誤信息dc 工作表 命名範圍DocumentSummaryInformation8k,CompObjph FMicrosoft Excel 2003 工作表Biff8Excel.Sheet.89瞦