邢唷> PO  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMN\cRSTUVWXYZ[]`^_ab9eoghijklmndpqrstuvwxyz{|}~Root Entry F b,aQ@YWorkbook1n_VBA_PROJECT_CUR"/#0芞殢底`J憶彽VBA.璮殢底Lt洀底 g2\plurenjia Ba= ThisWorkbook= L}8X@"1唞媅SO1唞媅SO1唞媅SO1唞媅SO1唞媅SO1唞媅SO1唞媅SO1zArial1唞媅SO1唞媅SO1h>唞媅SO1,>唞媅SO1>唞媅SO1@唞媅SO1唞媅SO1唞媅SO1唞媅SO1唞媅SO1zArial1Q唞媅SO1唞媅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唞媅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_                 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6      P 4P      7 5    8 9 :a   ;  <攆f = > ?`   6 6 6 6 6 6 @ A B  C    @ @  @ @  ""@ @ @ @ @ @ @ @ !@ @ ""@ @   1 1 1 1@ @ 1 1 1@ @ 1|7 1|7 1 1@ @ 1 1 1 1 @ @ @ @ 0@   "1 1 1@ @ #8@ 1 1 %1|7 1 1@ @  (1 "1  1|@  1 1 '1|@ @ 7 1<@ @ )1@  +1 -1@ @ /1@ @ 01 21@ @ 31|7 1 1 |||膵t}(} 00_)}(} 00_)}(} 00_)}(} 00_)}(} 00_)}(} 00_)}<} 00_)ef\([$}<} 00_)ef \([$}(} 00_)}<} 00_)蘈\([$}(} 00_)}(} 00_)}<} 00_)蘈\([$}(} 00_)}(} 00_)}<} 00_)23\([$}(} 00_)}(} 00_)}<}  00_)23\([$}(}! 00_)}(}%?00_)}<}( 00_)俏\([$}(}) 00_)}(}-  00_)}<}. a00_)騎\([$}(}/ 00_)}x}2 鷠00_)\([$#,##  }}3 00_)ゥ\([$???#,##??? ??? ???}(}4 00_)}(}5 00_)}<}6 鷠00_)\([$}<}? 渆00_)霚\([$}x}@ ???00_)???\([$???#,## ??? ???}}A ??v00_)虣\([$#,##  }(}B  00_)}(}9 00_)}<}: 00_)\([$}<}; 00_)\([$}(}< 00_)}<}= 00_)\([$}<}> 00_) \([$}x}C00_)膊\([$膊#,## 膊 膊}(}E 00_)}(}G 00_)}(}N 00_)}(}O 00_)}(}P 00_)}(}Q 00_)}(}U 00_)}(}Y 00_)}(}[ 00_)}(}\ 00_)}(}] 00_)}(}a 00_)}(}b 00_)}(}d 00_)}(}g 00_)}(}h 00_)}(}j 00_)}(}k 00_)}(}o 00_)}(}p 00_)}(}z 00_)}(}{ 00_)!20% - :_寚eW[湗r 1>20% - :_寚eW[湗r 1 !20% - :_寚eW[湗r 2>"20% - :_寚eW[湗r 2 !20% - :_寚eW[湗r 3>&20% - :_寚eW[湗r 3 !20% - :_寚eW[湗r 4>*20% - :_寚eW[湗r 4 !20% - :_寚eW[湗r 5J.20% - :_寚eW[湗r 5 ef陬 !20% - :_寚eW[湗r 6J220% - :_寚eW[湗r 6  ef !40% - :_寚eW[湗r 1>40% - :_寚eW[湗r 1 !40% - :_寚eW[湗r 2J#40% - :_寚eW[湗r 2 蘈娓 !40% - :_寚eW[湗r 3>'40% - :_寚eW[湗r 3 !40% - :_寚eW[湗r 4>+40% - :_寚eW[湗r 4 !40% - :_寚eW[湗r 5J/40% - :_寚eW[湗r 5 蘈忿 !40% - :_寚eW[湗r 6>340% - :_寚eW[湗r 6 !60% - :_寚eW[湗r 1> 60% - :_寚eW[湗r 1 !60% - :_寚eW[湗r 2J$60% - :_寚eW[湗r 2 23跂 !60% - :_寚eW[湗r 3>(60% - :_寚eW[湗r 3 !60% - :_寚eW[湗r 4>,60% - :_寚eW[湗r 4 ! 60% - :_寚eW[湗r 5J060% - :_寚eW[湗r 5 23捦 !!60% - :_寚eW[湗r 6>460% - :_寚eW[湗r 6 "~vR詋 #h槝h槝 $h槝 1h槝 1 %h槝 2,h槝 2?Э &h槝 3h槝 3 'h槝 4h槝 4(頬0頬 俏 &8^膲 )8^膲 12,8^膲 12  *8^膲 2 +8^膲 4, 8^膲_hQ齎L?e:SR鉔x-(厤  .}Y0}Y 騎 a /Gl;`&Gl;` 0'^1 '^[0] 2梴^梴 鷠 3纇錱USCQ!:_寚eW[湗r 2 繮M ;:_寚eW[湗r 3>%:_寚eW[湗r 3 濜Y <:_寚eW[湗r 42):_寚eW[湗r 4 =:_寚eW[湗r 5>-:_寚eW[湗r 5 K >:_寚eW[湗r 6>1:_寚eW[湗r 6  鯷F  ?-N2-N 霚 渆 @搹鶴^搹鶴 ???????????? ??? A搹eQj搹eQ 虣 ??v B 0 騗繈顣剉厤   C鑜蕬^ 鑜蕬 膊膊膊 膊XTableStyleMedium9PivotStyleLight168覽櫃3ffff燙櫶櫶虣虣3f3燙櫶fff枛3f3檉33333f33333\瓊`芖 齎禰VYf[褢D崺RN TUS*鉔xh垍褤曪嬦Oo`VV!  =dc:- Km諎@b g!h寶膲Rv^SbpS曪嬦Oo`fvf餪餈GF@N餏|MO S A咥@臕@  J-1 7 checkDiffName餠緰歔餠緰+R T饄 checkSqyyCode3u鮦t1ux媖緐NO軴 checkSqyyName3u鮦t1u T饄f[u覻 T 77usY筫誰 T廭鱏/魦f T饄{|媁 checkGender'`+RsY'`+R7u^8^餠緰N,傪V緰 N餠緰vQ諲鄀US睳d[?Q萷隭P[sY淨Qg擭軴郪舥郪~p塵淨NNsfzjh 7 checkName 7臺頞蔛?$A鞡蒃 燜X 篏r 鬑 -J !KFLaM怤H籓s+Q>R豐ccBO岆Uj_ 翶U g2  &n|  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} o} `U} U} U} U} `U} g U} hr U} sw U} xx@ U} yyU} zz U} {{ U} || U} }~ U} U} U} U} U} U} U} U} U} U} `U} `U} `U} @U} U} U} U} U} U} U} U} `U} U} U} U} @U} @U} U} %U}  U vvPvPvbvPvPvQvRvTv{@ V! lC kB Y g9 g ] ] Y j Y3 [ w w P P P P P P P P P P P P P P P P P Pc"@m s] naa f^aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaauo Q oD P P [ [ [ [ [  [  [  P`  [`  [` [` [` [` [` [` [` [` [` [` [{ [ P P [{ z [{ z P ^-p Q Q h: h( \* \)  \,  \+  ha  hb  hc hd he Qf hg hh Qi hv hy Qz h h Q Q t t t t Q iQ[j\lP n\Po pQ8qd W qE X\ X X; i< X" X# X$  X&  X%  Xj  Xk  Xl Xm Xn Xo Xp Xq Xr Xu Xw Xx X| X X X X} y X~ y X S4 rF SG u S S= S> S? Z'  S@  SA  S  v  St S Ss St S Ss St S Ss St S x S x S x S S S{  餽 z餤(  饜 vj 餘cX? ]4v6@ 矧摒E@雇姆Q> <kX橯f[u剉覻 T<~饉  <cCC@],@u9 $< _薡纇錱<~饉  <cCC@],@莰蟼9 $<_ 薡 纇 錱< ~饉 閕 <cCC@->],5@%9 $<_ 薡 纇 錱<v6admin>@dinjn  7 Sheet1ggDh4h\: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 O_GGGG O I.K? `/ _0 E I.K `2 _1GKKG 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 II$@ I II I I II? I I II@ I I II@ I I II@ I I BXP J<<< <<<<<<<<<<<<<<<<<<< !"#$%)*+,,,-,.,/,0,1,2,3,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 )I5)I )e6 )I7*IIII +II+I? +JJ +LK ,IL,I@ ,JM ,LK -IL-I@ -KN -LK .IL.I@ .KO .LK /IL/I@ /KP /LK 0IL0I@ 0KQ 0LK 1IL1I@ 1KR 1LK 2IL2I @ 2KS 2LK 3IH3I"@ 3KT 3LK 4IL 4IU 4KV 4LK 5IL 5IW 5KX 5LK 6IL 6IY 6KZ 6LK, |<<<<<<<<<<<<<<<<88P餒  0(   >@   7 Sheet5ggD g2 鐢e  d褚MbP?_*+%&ffffff?'ffffff?(?)?"333333?333333?&<3U     GGGGGGGGG G G G G GGGGGGGGGGGGGGGG>f0 P餒00(  >@ 7 Sheet6ggD ThisWorkbook __SRP_40<__SRP_5 =ySheet1?~  !"#$%&'()*+,-./123456789:;<>@ABCDEFGHIJKLMNOPRSTVXYZ[\]^_`abcdefghjklnpqrstuvwxyz{|}~t6D 梺zL#< B<E惌苴^Fo%恛B寁c繼xo%恛B寁c繼 B<E惌苴^ME(SLSS6"  <,<0<4<8<<<N0{00020819-0000-0000-C000-000000000046}` $`聽k@ i& `2.i( %凗 %偁  %`@.0,*24@l @\ @0L @x< @H, @` @ @ @忐 @滎 @烴 @8件 @ @ 滯 @P岨 @| @hl @\ @L @< @, @ @ @( @@忑 @犖 @聽 @箏刜$*\Rffff*0=634bbc60*\R0*#f*\R0*#1*\R0*#17$*\Rffff*0>634bbc62*\R0*#2$*\Rffff*0<634bbc5c4 "     P)您是否確認將要保存該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琿  $~ TlL, 忐滎烴滯岨l\L, 忑聽4XrU @,`#n<jx梺逪#<憹癧1w琂$6葎絪 FK9綩剆榢G<xK9綩剆榢G<蛻澃[1w琂$6葎絪ME(SLSS6"N0{00020820-0000-0000-C000-000000000046}(%H凗` %偁6 %`h8@``0箏刜$*\Rffff*0?634bbc644xòAttribute VB_Name = "She@et1" 鐱ast0{00020820- C$0046} |Global!腟pac扚alse dCreatablPre declaId玊ru BExposeTemplateDeriv$払ustom izD2rU 0Qy)4`rU @n<jx梺#__SRP_8Q__SRP_9UBSheet6W~__SRP_ei<6*:^鱫EぬC峭 F, 挗dUJ憋r湗(fx, 挗dUJ憋r湗(f6*:^鱫EぬC峭ME(SLSS6"N0{00020820-0000-0000-C000-000000000046}(%H凗` %偁8 %`h8@``0箏刜$*\Rffff*0B634bbc644xòAttribute VB_Name = "She@et6" 鐱ast0{00020820- C$0046} |Global!腟pac扚alse dCreatablPre declaId玊ru BExposeTemplateDeriv$払ustom izD2rU y)4`rU @ndkk梺__SRP_f mBSbpS剺葔  o錧wQ齉pe f滾__SRP_axMEP <0@箏刜"  ( Hhx學生信息打印模板$>(@學生信息打印模板$>B@B學生信息打印模板$>(@o偘Attribute VB_Name = "打≡だ" Sub Browse_Print () Worksheets("學生信息l模板").Visibla楾rue"d^P@review2cEnd rU~|    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    68  p  6   8  0M梺艄xME(6 LLH F` @ I僅 `2.I僇 `凩 R` i僒 \X` 8  i僒 f`  I僪 I僅 I僇 I僯  t` X  #I僪 xI僅 I僇  ~`  .I僪 I儉 8I僅 XI僇 xI儌  x`  ??CI儕 I僪 I僅 8I僇 XI儗  `  I I儙 ` p` P I +*( `  I僪 I, i.`0 @ ` h I僪 I僅 I傿 I儙   ` ( I儙 HI僅 hI僇 @凬 V  `  I僪 I僐  \ ` ` I僪 I僐  ^` ` k I僪  I僅  I傿 @ I儙   ` I僪  I僅  I傿   ` @ I儙 ` I僪  I僅  I傿 @凬 @刞 @凩 ` H  I僪 h I僅  I傿 `凥`刣`刦xp(X`   僁 % @ 0 ( 0 h H @^l X 0 >@ h @ X @ H @D @ 4 @$ @ @  `  箏刜$*\Rffff*0@634bbc64*\R1*#385*\R1*#125*\R1*#119 B       B  @6X (  ( 0@(X&   f h >& ( X8 h (*@ pj& @P`h ` **0`x  H(x HX( H@(p H(@  &  @ nH   8(8 8((  &  @ pH ( 80$h 8H$ ` &h $  8(j 8(j 0  8  &@  h x    0!(H!p!H!!!!""("0"P"X"`"h"&" #(# 0#P#X#x# b# # $$0$8$P$&$ % ,%@%H%h% fp% % %& & (& 8@&(x& 8 '(X' ' &( ((8(@(`( fh( ((( ) T ) &x) ))) $) &)$X *$&x*$ *$* ** * *$t*$&`+$ + + $++ ++ b+ @,P,p, tx, &, - (-0-P- bX- - --..&. . .../ ^/ h/ ///X/&0 @0 P0X0x0 ^0 0 11 1X(1&1 1 111 ^1 H2 h222T2&2 3 (30383X3 n`3 3 34" 4H4&4 4 55585 j@5 5 55"6(6&6 77787 n@7 7 77"808&8 8 889 n 9 9 &99"9:&: : :::  n; p; &;(;(;<" <H<&< = (=0=P=  PX=====&h> > >>>> R>0?H?`?Xh?&? ? ?@@(@ b0@ 楡$癅谸@郂& A HAXA$`A圓怉癆 X窤 B(BHB@PB&怋 窧菳蠦R鐱@C&HC pCC 圕 怌楥窩 ^繡  D 8DXD@`D&燚 菵谼 郉EE(E ^0E 怑"‥蠩@谽&F @FPF XFxFF燜 ^‵ G& G HG@PG&怗 窯菺&蠫鳪H H |(H ℉$繦鐷(餒@I&XI I 怚"業繧菼鐸 |餓 pJ"圝癑@窲&鳭 K0K 8KXK`KK 圞 L((L(PL(xL燣癓繪豅郘餖MM0MPMXM `M hM8圡$繫燦 &∟ 蠳郚 鐽$O (O 8HO(jO  餙 鳲 &P (P8P@P HPhP |pP 餚$Q0Q@8Q&xQ 燪癚$窺郠鑁R dR xR 怰@癛&餜 S(S20ShS xpS 鑃6T.@TpTT( 圱2楾( ═1窽( 萒2豑( 鑄1鳷UUJ(UxU怳楿 J燯  餟V(V@VHV8`V榁HW&PW xW圵燱8竁 b餡XX`X&hX 怷燲╔萖 蠿豖 f郮 B  HY PY<XY榊 竃衁$餣$Z@ZHZ PZ \鳽 B  X[,x[ 0╗@豙"\ ^@\ 6燶豛餦]0]0P]D]萞鑍餧鴀^^ ^ "癪 豝 .鴁B  (_ 0_$@_Bh_ 癬 繽 衉 郷 鑏 鴂`` `B  燻╜ 萡鑐 餪 坅 燼 竌 豠B  餫"鴄  b8b@b HbPbXb `b8b竍2纀鴅 c 0c@c HcPc Xchc F坈衏豤 郼 鑓 *鴆(d 0d 衐 鑔B  ee*(e 4Xe恊 榚 8f PfB  hf*pf爁 ╢B 8g<@g J`gg 坓B  h h@h HhB  鴋 i "i @i8`i2榠衖 鑙j j j (j 0j@j"`j0坖 竕(豭kk&k8k @kPk XkB  鑛餶Vlhl 8坙 纋 鄉:餷40m$hm恗"╩衜豰鄊餸-----------------------------------------校驗校驗必填項若有錯誤信息顯示到 批注中----------------------------------------------------------- 單元格內容] H J N%P'L L'Fd('Fki--------------------------------------------寫日志 記錄錯誤信息並顯示到一個錯誤信息表中-------------------------------------------- T/U Z X$V,P Z 'ZiX--------------------------------------------寫日志 記錄錯誤信息並用紅色字體顯示到錯誤信息表中-------------------------------------------- T'^ T Z X$V,P ^ Z X$V%P%`!b(d Z 'Zipi--------------------------------------------添加批注(點擊開始校驗)-------------------------------------errorInfo批注內容X 1Worksheets(sheetIndex).Unprotect Password:="1qaz" j H J h$>%PB@l H J h$>%P!n(pW 添加黃色背景 H J h$>%P!r(@ii--------------------------------------------刪除批注(點擊開始校驗)-------------------------------------1Worksheets(sheetIndex).Unprotect Password:="1qaz" H J h$>%PB@v H x J z H J h$>%P!n(dd` | H J h$>%P!n(dk0i(r---------------------------------------------點擊開始校驗 是否添加或刪除批注調用的方法----------------------------  如果校驗失敗 H J h$>%P!rd 判斷批注為空 h H J A@fV 添加批注方法d"若不為空,則去除當前批注🥷🏻,重新添加 h H JA@tN 清除批注方法 h H J A@fk1 MsgBox "第" & rowIndex & "行數據項👨🏻‍🌾:" & errorMsgd :如果校驗成功則判斷是否有批注🧏🏻🚈,若有則把校驗失敗時的批注去除 h H JA@t ,#如果做了去除空格處理,則對其進行提示第 H行🧔🏼🧑🏼‍🎤,第 J列,您輸入的字符"$. "$."中包含了空格🧑🏽‍🍼,系統已自動為您清除了A@Rd`kXkPiH----------------------------------------------------------------------------------------------------------------------------------y--------------------------------------------根據標識符🎁,調用對應的方法(點擊開始校驗)-----------------------------------------------------------------------------------------------------------------------------------------------------------------------把錯誤信息寫進錯誤列表 H J h$>%P'  J h$>%P'I獲取該列表頭的名稱 如果為合並行的表頭  J h$>%P' H e  J h$>%P'kh0'  checkLen*)如果為整數長度校驗  $'checkLen'  checkNum*e-如果為Number長度校驗  $'checkNum'  checkVal*e-如果為值的校驗  $'checkVal'  checkInt*e-如果為整數值的校驗  $'checkInt'  checkTerm1e-如果"是🥶、否"為必填1' checkTerm'  checkYesNo1e/如果"是、否"為必填1' checkYesNo' checkDiffName1e2如果困難級別名稱為必填1' checkDiffName' checkDiffCode1e2如果困難級別編碼為必填1' checkDiffCode' checkIDCardType1e4如果身份證件類型為必填1'checkIDCardType' checkSqyyName1e2如果申請原因名稱為必填1' checkSqyyName'  checkYear1e. 如果年份校驗1' checkYear'  checkYFJEe/ 如果年份校驗1' checkYFJE'  checkPmmce- 如果年份校驗1,8,0' checkPmmc' checkBxke, 如果年份校驗1,8,0'checkBxk'k _=================================類型1 執行的非空校驗==========================================把錯誤信息寫進錯誤列表 checkNullKT h H J$' 第 H 行的數據項👳: 不能為空🌷!請檢查'')整體校驗時👉🏻,如果有錯誤信息 A@RRMsgBox "第" & rgold.Row & "行的數據項⛔️:" & Chr(10) & titleMsg & "不能為空,請檢查"kh h  H J A@~'a=================================類型2 執行學生姓名校驗========================================== checkNameKT h H JA@@調用去除空格的方法 H J h$>%P!' $' 第 H 行的數據項: ;填寫不正確!必須為漢字⛸,長度大于1🤰🏿,不能超過20個字符,請檢查''%整體校驗時🏈,如果有錯誤信息 A@R  'k h  H J A@~'Z================================= 執行的長度校驗==========================================checkLenKT h H JA@F調用去除回車的方法 h H JA@H調用去除空格的方法  $'  ,$'$ ` 如果該項為非必填,並且為固定長度第 H 行的數據項👶🏼: .填寫不正確,該項可以為空。若填寫,則長度必須為$ 位!請檢查'$ ed 如果該項為非必填🚣🏽‍♀️,並且為長度範圍第 H 行的數據項👨🏿‍🎨: 4填寫不正確,該項可以為空。若填寫,則長度必須大于等于$ 位,且不超過$ 位!請檢查'$ ed 如果該項為非必填,並且為固定長度第 H 行的數據項🏡: &填寫不正確,該項不能為空😂,且長度必須為$ 位!請檢查'$ ed 如果該項為非必填,並且為長度範圍第 H 行的數據項: ,填寫不正確,該項不能為空,且長度必須大于等于$ 位👩🏽‍🎓,且不超過$ 位💃🏻🌸!請檢查'k '0整體校驗時,如果有錯誤信息 A@Rk h  H J A@~'h================================= 執行的長度校驗(Number類型)==========================================checkNumKT  $'  ,$'$@ 如果該項為非必填,並且為固定長度第 H 行的數據項: G填寫不正確🚉,該項可以為空🦟,若填寫,則必須為數字,大于0,整數位長度不超過$位,且小數位不超過$ 位!請檢查'$eD 如果該項為非必填,並且為固定長度第 H 行的數據項: ?填寫不正確👨‍👧‍👧,該項不能為空,且必須為數字,大于0,整數位長度不超過$位,且小數位不超過$ 位💨!請檢查'k '0整體校驗時,如果有錯誤信息 A@Rk h  H J A@~'i================================= 執行名次30%校驗(Number類型)========================================== checkPmmcKT  $' h H$'N 獲取填寫內容  ,$'$@ 如果該項為非必填,並且為固定長度第 H 行的數據項: ?填寫不正確🏄🏽,該項不能為空🧑🏼‍🎄,且必須為數字,大于0,整數位長度不超過$位,且小數位不超過$5位🧟‍♂️!且成績排名次必須在成績排名總人數的30%之內!請檢查'$eD 如果該項為非必填,並且為固定長度第 H 行的數據項: ?填寫不正確,該項不能為空🧖🏼,且必須為數字,大于0😥,整數位長度不超過$位,且小數位不超過$5位!且成績排名次必須在成績排名總人數的30%之內!請檢查'k'0整體校驗時,如果有錯誤信息 A@R $ 333333?$ e ,$'$@ 如果該項為非必填,並且為固定長度第 H 行的數據項: ;填寫不正確,成績排名次必須在成績排名總人數的30%之內!請檢查'$eD 如果該項為非必填,並且為固定長度第 H 行的數據項: ;填寫不正確,成績排名次必須在成績排名總人數的30%之內!請檢查'k''0整體校驗時,如果有錯誤信息 A@Rk h  H J A@~'}=================================15 checkNumYN 執行內容是否為“是”“否”判斷是否必填--================================== checkName1KT h H$'K 獲取填寫內容 h H$' $ 殭櫃櫃?$ $ 333333?$1,1,100'  $'d0,1,100'  $'  H h$V,Pkk 第 H7行的數據項:成績名次在10%-30%的情況下需要填寫備注說明💦, *只能輸入漢字,且字符長度最多為100位!請檢查''(整體校驗時,如果有錯誤信息 A@Rd" checkYesNo h H JA@k" h  H J A@~'[=================================執行值範圍的校驗==========================================把錯誤信息寫進錯誤列表checkValKT  $'  ,$'第 H 行的數據項🏦: $填寫不正確,該項必須為數字🧘🏼‍♀️,大于等于$ 🧑🏿‍🎓,且不超過$!請檢查''-整體校驗時,如果有錯誤信息 A@R& isValidateCount = isValidateCount + 1k h  H J A@~'_=================================執行的為整數值的校驗==========================================把錯誤信息寫進錯誤列表checkIntKT  $'  ,$'$@ 如果該項為非必填,並且為固定長度第 H 行的數據項👰🏽: 8填寫不正確🖊,該項可以為空🕵🏻,若填寫🧑🏿‍🦱,則必須為整數,大于等于$,且長度不超過$ 位🙅🏻!請檢查'$eD 如果該項為非必填,並且為固定長度第 H 行的數據項: 0填寫不正確👨🏼‍🎤🍸,該項不能為空,且必須為整數,大于等于$🟤,且長度不超過$ 位!請檢查'k'0整體校驗時,如果有錯誤信息 A@Rk h  H J A@~'`================================= 執行的身份證件號校驗========================================== checkSfzjhKT h H$'S 獲取填寫內容 第 H 行的數據項: &填寫不正確,因身份證件類型為空!請檢查''0整體校驗時,如果有錯誤信息 A@RdH  居民身份證  J$'O 身份證號校驗 :如果不符合身份證校驗規則第 H 行的數據項: *填寫不正確,該項必須為學生身份證號!請檢查''4整體校驗時,如果有錯誤信息 A@R  'k8d0 $' 第 H 行的數據項: E填寫不正確👩🏽‍🏭,該項不能為空,且長度必須大于等于1位,且不超過18位!請檢查''4整體校驗時,如果有錯誤信息 A@Rk`kXkP h  H J A@~'\================================= 執行學籍號的校驗==========================================checkXJHKT 1, 1, 50$' 第 H 行的數據項: E填寫不正確☂️,該項不能為空,且長度必須大于等于1位,且不超過50位⚆!請檢查''0整體校驗時,如果有錯誤信息 A@Rk h  H J A@~'[=================================執行銀行卡號校驗==========================================把錯誤信息寫進錯誤列表 checkBankKT $' 第 H 行的數據項: $填寫不正確🆑,該項必須為數字,大于等于$ ,且不超過$!請檢查''-整體校驗時🧑🏽‍🦲,如果有錯誤信息 A@Rk  h  H J A@~'W=================================執行年份校驗==========================================把錯誤信息寫進錯誤列表 checkYearKT  $' 第 H 行的數據項: *填寫不正確🦈,該項格式如2012、2002等!請檢查''-整體校驗時,如果有錯誤信息 A@Rk h  H J A@~'W=================================執行學年校驗==========================================把錯誤信息寫進錯誤列表checkXnKT $' 第 H 行的數據項🤵🏻‍♀️: )填寫不正確,該項格式如2012-2013等!請檢查''-整體校驗時✖️,如果有錯誤信息 A@Rk@ h  H J A@~'W=================================執行月份校驗==========================================把錯誤信息寫進錯誤列表 checkMonthKT $' 第 H 行的數據項🔒👼🏿: &填寫不正確,該項格式如01、12等!請檢查''-整體校驗時,如果有錯誤信息 A@Rk h  H J A@~'g=================================類型3 執行的日期校驗(非必填)==========================================把錯誤信息寫進錯誤列表 checkDateKT  $' 2如果出生日期校驗失敗第 H 行的數據項: 填寫不正確🚵🏽!填寫格式為"$.xxxxxxxx"$. ,如20130221,請檢查''-整體校驗時🗯,如果有錯誤信息 A@Rk h  H J A@~'c=================================執行的日期校驗(必填項)==========================================把錯誤信息寫進錯誤列表checkDateNecessaryKT& $' 2如果出生日期校驗失敗第 H 行的數據項: 填寫不正確🥴!填寫格式為"$.xxxxxxxx"$.= ,如20131221,並且只能設置當日之前的時間(包含當日),請檢查''-整體校驗時🈂️,如果有錯誤信息 A@Rk h  H J A@~'g=================================執行的出生日期校驗(必填項)==========================================把錯誤信息寫進錯誤列表 checkBirthdayKT"  $' 2如果出生日期校驗失敗第 H 行的數據項⛓️‍💥🐑: 填寫不正確!填寫格式為"$.xxxx-xx"$. ,如2013-12,請檢查''-整體校驗時🐻‍❄️,如果有錯誤信息 A@Rk h  H J A@~'g=================================執行的出生日期校驗(必填項)==========================================把錯誤信息寫進錯誤列表checkBirthdayNecessary2KT, $' 2如果出生日期校驗失敗第 H 行的數據項📜: 填寫不正確!填寫格式為"$.xxxxxxxx"$. ,如20131201🧏,請檢查''-整體校驗時,如果有錯誤信息 A@Rk( h  H J A@~'g=================================執行的出生日期校驗(必填項)==========================================把錯誤信息寫進錯誤列表checkBirthdayNecessary3KT, h H$'K 獲取填寫內容 h H$'K 獲取填寫內容  $' 2如果出生日期校驗失敗第 H 行的數據項㊙️: 填寫不正確👩‍🎨!填寫格式為"$.xxxxxxxx"$.6 🈲,如20131201,並且要大于院系填報日期5個工作日🚙,請檢查''-整體校驗時,如果有錯誤信息 A@Rk h  H J A@~'J=================================類型10 校驗電話號碼====================== checkphonesKT $' 第 H 行的數據項: 填寫不正確!填寫格式為"$.區號-固定電話 或 手機號碼"$. 👵🏻,請檢查''%整體校驗時,如果有錯誤信息 A@RkP h  H J A@~'L=================================checkOption 校驗備注 ====================== checkOptionKT B$' 第 H 行的數據項: )填寫不正確!長度不能超過200個字符🧑🏻‍🏫🧝🏼‍♀️,請檢查''%整體校驗時,如果有錯誤信息 A@Rk h  H J A@~'\================================= 執行認定困難級別名稱校驗================================== checkDiffNameKT checkDiffName  $' 第 H 行的數據項🧑🏽‍⚕️: 填寫不正確!請檢查''(整體校驗時🌵,如果有錯誤信息 A@Rd checkDiffName h H JA@kp h  H J A@~'R=========================== 執行認定實發金額校驗================================== checkSFJEKT 1, 4, 0$' 第 H 行的數據項: 填寫不正確!請檢查''(整體校驗時🧑🏼‍🍼,如果有錯誤信息 A@Rd0 $@第 H 行的數據項𓀎: #填寫不正確,該數值只能為8000,請檢查''')整體校驗時,如果有錯誤信息 A@Rdxkpkh h  H J A@~'X================================= 執行認定應發金額校驗================================== checkYFJEKT checkYFJE  $' 第 H 行的數據項🗞: 填寫不正確!請檢查''(整體校驗時,如果有錯誤信息 A@Rd  checkYFJE h H JA@k h  H J A@~'X================================= 執行身份證件類型校驗================================== checkZjlxKT checkZjlx 1$' 第 H 行的數據項🎅: 填寫不正確!請檢查''(整體校驗時,如果有錯誤信息 A@Rd‥ checkZjlx h H JA@kE h  H J A@~'X================================= 執行身份證件類型校驗==================================checkIDCardTypeKTcheckIDCardType  $' 第 H 行的數據項: 填寫不正確!請檢查''(整體校驗時,如果有錯誤信息 A@Rd0DcheckIDCardType h H JA@kD h  H J A@~'v=================================14 checkGender 執行內容是否為“男”“女”校驗--================================== checkGenderKT checkGender 0$' '-性別有錯,則無需校驗身份證號第 H 行的數據項🧑‍🦳🧘🏼: 填寫不正確!請檢查''(整體校驗時,如果有錯誤信息 A@RdhB checkGender h H JA@k8B h  H J A@~'u=================================14 checkYesNo 執行內容是否為“是”“否”校驗--================================== checkYesNoKT checkYesNo 1$' 第 H 行的數據項: 填寫不正確🔨!請檢查''(整體校驗時💆,如果有錯誤信息 A@Rd菮 checkYesNo h H JA@k燖 h  H J A@~'}=================================15 checkNumYN 執行內容是否為“是”“否”判斷是否必填--================================== checkSNumYNKT h H $'K 獲取填寫內容 h H $'H 獲取填寫內容 h H $'H 獲取填寫內容 是1,8,0'  $'d ?0,8,0'  $'  H h$V,P H h$V,Pk>k> 1,8,0,$'$@ 如果該項為非必填,並且為固定長度第 H 行的數據項: ?填寫不正確🧞‍♀️👩🏿,該項不能為空🍲✍🏿,且必須為數字,大于0,整數位長度不超過$位,且小數位不超過$5位!且成績排名次必須在成績排名總人數的30%之內!請檢查'kX='0整體校驗時,如果有錯誤信息 A@Rk= 是  $ 333333?$ 1,8,0,$'$@ 如果該項為非必填,並且為固定長度第 H 行的數據項🙂: ;填寫不正確,成績排名次必須在成績排名總人數的30%之內!請檢查'k<''0整體校驗時,如果有錯誤信息 A@Rk;k; h  H J A@~'u=================================14 checkYesNo 執行內容是否為“是”“否”校驗--================================== checkSqyyNameKT checkSqyyName  $' 第 H 行的數據項🏬🙋‍♂️: 填寫不正確🩹!請檢查''(整體校驗時,如果有錯誤信息 A@RdH: checkSqyyName h H JA@k: h  H J A@~']=================================checkTerm 執行學期校驗--================================== checkTermKT checkTerm  $第 H 行的數據項: 填寫不正確!請檢查''(整體校驗時,如果有錯誤信息 A@Rk8 h checkTerm  $ H J A@~'r=================================checkAtLeastOneNNull 執行至少一個金額為非空--==================================checkAtLeastOneNNullKT  'A"執行 至少一個非空校驗 的單元格數目 $ =如果金額符合規則   ' J KTF   ' KTF   ' KTF   ' KTF   'n6d金額不符合規則  'F6執行 至少一個非空校驗 的單元格中內容為不符合規則的數目    'kh6'C===================================================================checkBxkKT  $' h H$'F 獲取填寫內容  ,$'$8 如果該項為非必填,並且為固定長度第 H 行的數據項🌌: ?填寫不正確,該項不能為空,且必須為數字👩🏻‍⚕️,大于0,整數位長度不超過$位🚣🏻‍♂️,且小數位不超過$ 位!請檢查'k4'(整體校驗時,如果有錯誤信息 A@R $ $e ,$'$8 如果該項為非必填,並且為固定長度第 H 行的數據項🧘‍♂️: 4填寫不正確,必修課及格門數與必修課門數不一致!請檢查'k3''(整體校驗時,如果有錯誤信息 A@RkX3 h  H J A@~'n(3i 3_--------------------------------------------調用正則表達式-------------------------------------x]VBSCRIPT.REGEXP$.7RegEx為建立正則表達式 (4 設置全局可用vba中\不用轉義  ( .設置樣式 ( 5設置是否區分大小寫。  %'3 執行搜索測試.i1-----------------------------------------------------------新版 校驗重複(說明已經沒有格式錯誤)------------------------------------------------------------V-----------------------------------------------------------1🚁、無學籍幼兒表先在表內查重(sheet學籍幼兒表 A65535 $V%%!'*cna = getTotalColumnCount(sheetIndexValue) X$V!PB@1&每次校驗重複時時👩🏽‍🦰,把錯誤信息sheet清空,'Z錯誤信息記錄開始行數X==============================無學籍幼兒表先在表內查重==================================0類似冒泡排序🪻,每個元素和在它之前的所有行進行比較     " $V%P'  $   $ " $V%P'&  &.如果學籍號相同,說明是重複數據第 $ 行的數據和第 行數據重複📹!請檢查!!!!' A@R*把錯誤信息輸出'(k..-i------------------------------------------------------------第一列中 根據值獲取該值所在行------------------------------------------------------------根據值,查找到值所在的行或列keyWord 查找的關鍵字'kbn 查找所在行或列 值為 “row”或非rowp'*]the find result object ,4 86 <: A1:A65535 h$>%%2.0 0 .row 0!'*d, 0!>'*k,k+i+------------------------------------------------------ 向指定cell中設值-------------------------------------------------------------(1qazF h$>B@D  H B h$>%P(i+------------------------------------------------------ 執行碼表內規則校驗(允許為空)-------------------------------------------------------------value 規則類型value1 cell的內容校驗不正確返回false校驗正確返回true J0說明為非必填項 H$L'z)k)k)]'P某一個規則的記錄數 A65535 T$V%%!'RB表行數' T row$*'N=獲取規則類型所在行  N R  T$V%P  P 'Pd(y(k(  $ N N P  $ T$V%PX HX L判斷規則內容是否和cell中相等'y (k( $#此時count數目為該規則所有的內容數目i'------------------------------------------------------ 執行刪除某一行操作(excel受保護的)-------------------------------------------------------------sheetIndex 表名 rowNum 行號1qazF h$>B@D R h$>%XB@Z/ 把該行刪除- Worksheets(sheetIndex).Protect Password:=123ih&------------------------------------------------------ 執行刪除某一行操作(excel沒有保護)-------------------------------------------------------------sheetIndex 表名 rowNum 行號  R h$>%XB@Z/ 把該行刪除iX%------------------------------------------------------ 向指定cell中設值-------------------------------------------------------------1qazF h$>B@D  H B h$>%P(ix$------------------------------------------------------ 獲取指定的cell值-------------------------------------------------------------` H B h$>%P!'i#------------------------------------------------------ 根據代碼表中的名稱設置值(前提時,名稱已經通過了校驗)------------------------------------------------------------- ]   H B h$V%P!X 'L'P某一個規則的記錄數 A65535 T$V%%!'RF表行數 T row$*'NA獲取規則類型所在行  N R  T$V%P  P 'Pd!y!k!  $ N N P  $ T$V%P!X 'H H LX 1判斷規則內容是否和cell中相等 $ T$V%P!'` `X H B b h$V%P(y d H B b h$V%P(k $i ------------------------------------------------------ 去除cell中的空格------------------------------------------------------------- ] 單元格裡面的內容]  3Blength1表示cell中原來的長度,length2表示執行去除空格後的字符串長度'默認為沒有去除空格2 Worksheets(sheetIndex).Unprotect Password:="1qaz" H B h$>%P!'H H'd dGzj*"如果單元格為空🛏,則不需去除空格操作 H 'f%length2為空格第一次出現的位置 f如果字符串包含空格 H $h'H HX H B h$>%P('k izAttribute 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 ? DiffName困難鑒侗餫?%D~ #Cods編炻l鎯A! `IDCardT鄽*'身份謤ぜ類型;:`._Sqyy;申青朐蝥;Q0] e? WYearZ年份?M瀈?:]  :錳YFJE塁/ 疎 QPmmcrA1,8,ySS- / .衊 |Bxk  ?嚄Select Cas唀uu '=C:1 執1浄空'?把錯誤信老⑿唇QG Nullj(B奙ethodXQPIReq鄒ired"焹/ Not 應 Terrors"第" & 齷"!數據0項:& "不能為眨∏爰觳嗛/hasE `Tr讕'整藼錻時,Q從% fwrit鄀Log E B' Box 5 gold.RowO & Chr(10) T]眮beginC1-_commento 寅,?i餾For.o+.2.學生姓/_Ky-pO remove郤pacep-椳 '調用コ嶄竦嗄方法??鈙?)./k2=裞3Stu醩(2/6/6;/6V55E爨5填寫不正確!必欣徍鶴鄭a紗笥1🙋🏼,8超過20咐鱟址*_8_8凪A writeLog error`Msg  isValidateCount =" D+ 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遀==遀D逷mmc颱 颱癇郩1UUg@ resul!鴊@etCell慁u1c鵛Q(鏷5)@ '獲取0諶!  If Not checkMethodXQ T`hen *functionArgsArr = Split( ., ",")呇 M(0)P1r'如果該釵潛靨睿⑶椅潭ǔざ竐rrorMsg-"第" & rowIndex"行氖菹睿偤 title& "填寫瞼徽罰瑏C不能為空,且必須為數字,大于0, L不0超過'峱1):位!小2∏頁杉ㄅ琶<在總人30%之內!請檢查"岴lsew漙`` ``E(``BE End 処f_jhasE漣癟rue '逍Q槭保扔寫鞞誤信息writeLog2CW$Dval(`u e) > result * 0.3)唫靈@$縑唘 ?W<✩,焪焪 焪 焪窘 構  ?h+= FaeooFoE鼈@beginCa鱛comment 爏heetB,,秐olumnTOTisFog醹G@'=15NumYN執行內菔欠裎笆恰薄胺瘛迸卸螿9A}--[ Case "ame1蟦 tJ= getCellValueCountXQ()鮻, 5) '獲取铩 c1PL瘛, 6戵郘WU7衖NV0A燽J<=/疿疿Sa "1,00/rV"=$Len3`, |a1 AIa2"0t鸓2&_+S3s ).)"s(W!3悩= "O/;_J邤6>qg!在10%-郩那榭魷灤枰!.備注@說明,牣輸入漢,且字符伃最多為100 S弸弸\Sok 'ysetDMBCod匔YesNo",麣Sc-qYY5YY薡縔齋慩值範蝬У膩}  '把榨寫鉸列表{(YPV2O=@=EE欏=v=忞/>惜惜籓隴 77熶gQ9徚6欎!餒愕扔掗 駊枇鈕$蜔 A hasError = True '整體Q槭保綣寫砦笮畔 "writeLo坓 e濵sg^' isValidateCounFt + 1DE nd IfbeginCheck@_commeasheetIndex, c MethodXQ, row olumn#焑isF啚 '=執行奈x檔膩0癇刃唇鴣斜韹僀ase "qInt" A`E (value, functionArgs)CVa Not婽 pThen 嶪Ar仭Split(遼, ","孖f ,(0)@5"0" '臉該項為非必填🧑🏻‍🦯,並且為固定長<度+艆@"蛋" &悁"Ax數據項:亮title@牧填寫不正確👧💂🏼‍♂️,"可覡暈誁埕,則必須C垼笥詰屓勇 K(1)A⌚️😬,且A/不砐 2 唬∏爰觳B Else)1))& ))!)不能)且(gs((h綌E捌_盕卡_卡卡>驢╧ 貓矸葜ぜ胚  }ēSfzjh躢resZjlx@getCell鐳uc豖Q(i虈 p'獲取!|內容;o |""耺;9hh駿類型4_C#_,邉邉_,埁KO釠居民? sIsIDNuPmber%sc鐑) ') = tqt不符合#.規則OM!)d飆飆錴#U鷓 Oe/"/"/"/o"o"鏃擐o SO)? 軗=SFZxJLX%恘$X逤o"o"_!$縬MY峐x眽a#晫1t 嬨18颸 $$$O$$o /:?o?_5徯 徯徯 龢L,O/|+{"|姥Ъ臺攜鑬XJH蟵 #蚚Len"1, 50掀/6/655552鉺5須5欣505懦 hasError = True '整體Q槭保綣寫砦笮畔 writeLog esgd!@End IfbeginCheck_comment sheetIndex, cMethodXQ , row olumnTisF!啂 '=執行銀行卡<號仯.把!緞唇鴣列表媮Case "oBank"帎妡雴 (valu e) 唘If Not婲 Then Q"第" &F["行氖菹睿偤title緓填寫不罰孟畋匭胛鄭笥詰扔functionArgsArr(0)A😁,且不超,過1∏謔檢查廔F=僚-'W暲烤dW__^媄A^年份遌遌"*萞Yea瀝遌耛A胅, C焈鍐焈F潫_漘袷餃2012🦸🏼‍♀️、2002祙齲焀b$焀煾 煙WW Wa 推門, function餉rgs葽驢d!縟x-xx昫-12_銔__# _/_?c?c?c?c隴?c?c"0c&俐2葄dG咳咳咳E`Φpg(纑e, su弍銚pэp晥P飶>銚銚銚 銚焢姊>幄要大于院系填報5個工作湛r 烜Ⅸ 烜縳$烜烜烜烜_あ撅烜 q烜?=類10 Q$電穢昂怕隣淩'= 執行認定困難級別名,稱罥^=7Case "倖Dif`fName詅嫃=!=DMB(L, 蘑functio鄋ArgsP歮 臦L8?徜lseKe坰et@YCod蝘,姟et闚 ]a焆噲焆n慉 ^F]蕗搗⒔鴝鈽\嚵+萛SFJE_\C \Num($Z"1, 4, 0"鬟Y!! 遈yY遈b踄 C*) <> 80<00傺 縹_,窣檬抵`椅灙澭瓰Fa歶 亍?-c-@o@?Q3疌r鯂疌r獵! 縭蒀D泳DDYD ?r 7rqqq煕t2蠜蠜仢蓻El.彋彋Lo.b .yT)毧q垃 %....彔業 .-*-身份證件鵠嘈瓦q-崛-Zjlx遯"-縭--"1OrR馹呷呷S?-?-?-?-熐Y縖鍁Or?-?-1O-Q5N-O-黣x煓O-'O-O-O-O-O-6O-?)?O-/O-斖IDCardTyp客3 --遊遊uU?]?]t//暣菹睿" & titleMsgP"填床徽罰∏爰觳" hasError = True '整逍Q槭保綣寫砦笮畔writeLog eJ*ElseEsetDMBCode "checkIDCardType", sheetIndex, row 纁olumn,@End If b eginC4_c纎mment2侫MethodXQE:,yisF啳 '=14<Geur執心諶菔欠裎澳小薄芭--=K?CasXT噴?嚶h(g, value, "0")揧If Not 癟hen < E IdNum啨性別仯,則扌枇?身份p證號扭"第藚誦械裟? ,F+?繦崆(癥* 0.3)逽h`M1_J1111N11檀Index & "行的數継菹睿"titleMsgl填寫不正確,成績排名次必須在總聳30%之內!請檢查" !End If'checkMethodXQ =@ False6hasErrorTrue '整體校驗時🤴🏻🐽,如果有錯誤信息&writeLo鴊 e)m亾1beginC亯_comment@ sheet債, 姈, row`olumn1i剆F芃 '= 14YesNo執行內容是否為“是”“惙瘛盇`--= ?Case "SqyyName誀H嬄DMB(L, value, functionArgs)亾\If Not媀 Then ?茐饁"第佫Eb佫ゅ焈?箑焄! E趎坰et,Cod4,闟R(賒縛g喛`矙縛玐"MTerm脿%醎學期縘c ╙ 4]㏑\揫I_Vora= _V 4蒧V_V _VCVX蘺?Hck*`嗊K逰 @"LAtLeastOneNNull凪至少桓黿鴝釵嗒非空OV*遫'DVL(aHCou爃= O @+ 1 '11 u  1 的單元格數目"@p.Mon坋y(R[) AA <> 0- 'Q}符合8嬖5qto竧alB@Z+揳Select :c梪OIbaojiaoBzCR:iS黸m ? _ 纇uoshi H  立 zhusu G 亗 others H  > 醩c*?%駖 '亳2不3 =pG_>6>>>致∥獓a@K扙5餃+莌+ " 螶b邉珇癑罳??O[#儵Bxk ,=Num1sP攉7 resultAgetC0ellV1XQ(i胓7) '圾袢♂! 墖柖'鋨I禔r1賁plit(y, "<,"竐P\(0:) 1胈@醎該向o必填,並且為固藍ǔざ葻 ) % 飶忯忯傯荒芪眨裔粑字💏🚚,大于0,整數 不超過摿翝 1)a攣!<小稅(2窏' End If  hasError = True '整逍Q槭保綣寫砦笮畔writeLogD eJMsg*ElseIf val(ue) <> result@) ThenafunctionA rgsAr璖plit( , "8,")!? #(0){1= 'w該項為非必填🎣,並且為固定鴣ざ-叜*"第" & rowIndex"行的數 菹睿簛 title杹 填床徽罰匭蘅渭案衩攀雰不一攏∏爰觳 "H潁checkMethodX騋@+Fa纆堾H_塗-beginCA,_comment sheetV4, 2,F\olumnD 枽isF喛N@&SelePct FD  '-(調用正則表達勈" E regBB(,褉親.DimEX As ObFjB%TSet= Create#("VBSCRIPT.REGEXP")A'RegEx為建立 EX.Gl餺bal繦B圗 '設置全 摯捎肎'vba中\不 米錷 Pa鄑tern ` P ! 樣式 IgnoreCase`鈁爚是袂執笮唷寫。j -aTest艠 '執行搜索0測試').No餿hin潰+HHE 新版 A噸複(說明已經沒有惛袷攪罰?M7 1、無學籍幼兒表先在表濫誆櫓*[聏犂SameXQNew(噟2) 'БH4na 3S!sj.Range("A65535")..(xlU榩).啦'c"getTotal侰聠Count Val蔿 msg"N).Cells.ClearCont 晄 '惷看聞3時彡 把e陚清空",cur翿o"w1 'E記錄開始行涫齽'=ocO'類似冒泡排序☠️,每個元素和在它之前的所有行進行氨冉惜aUi0 @startT眓 + 2 To r nag4baby窱D1I羢2(i, c35蟸 AjO@i - 1o32鬳xj x0?q e訁+號@相同🧑🏽‍🦳🚶🏻‍♂️‍➡️,q:示1;1嚲 U?卝冮艅和儐iCr@=4! >y '崆)輸出 0:p乢慛 Nex恡昻OGOF第渙兄 根據值獲取該值所在衞` #A饋檎業紺祤男謝蛄朽keyWord 冊墓丶r謅bn"# 值為 “伬H”或非RI Get@@O怐鈒R0(By@H獜9, St*r爁)AI燞genrm-x1褍c檮 'the f&i`膿 o c[@@k";IX)6X1 :fXF(What:= Look@In:=xl俈s, A xlW餳ole>@6t@xIs u" (Pk褠= "`"' c薬a了Q僆-0q.' 向指H定c恎中皩槮set璣l聀XQ鑠|*卡?!dex).U nprotp Passw2:="1qaz楯v&(co1).b錺(r?/  澛齶姽嬖騋|(允許勿)A q類型1 的內0!s岱禱睾fc'Q扁1t``wunction checkDMB(value, 01, flag) If4 = "0" Then '說魑潛靨x釹NV^T萺im1)nl L*}#True Exit F瑏 End If Dim rowDataCounta0 '某一個規則的記錄數#NumSheets(AreasIndex).Range("A65535").7(xlUp). '表袉%iFals剗H0GetRo纖OrCol.5劺, "") '獲取X類型所在行YFor i',|To亃b臄gCells(i, 俫聕vN+ 1EF6 Cj orhNextl iA.jN.侴+: -A罃CStr(3j, 3.)翛 C)斷丵內容蔃欠窈蚦繞粥邢嗟葒,_洇I<墷B=j' 此時c仮數@目為該#薫械%@ & A嚮'-2 謤蔥猩境齺行操作(ex<受保籤さ模﹕  ' 表名 Qah行號  e deletje ^(',$U鋴W(orksh).Unprotect Password:="1qa渮"*@ s(c).D '把L該C"b' P.1232) 2鵜揮嗅22 2y2No@._3隆ow{,遆: 向指定鉻設謳8hRset2V!轝Q⒉, 涑瞕U!|tG齍X矓Vl).C=抿7Q?$  A!+的坎oxgx縭\ <Q0b騲胻  根據代 碼表諴Z名稱`(彌擔前提時,1已經通箑誦Q镺<k*機od艡,T2H悺,|de.@o 烝 2Iv). 1|= 邧謻 Z}椾晝曽昋?>a線_ x*栘0es簴朢冶嚤Q箺桻 棻9昄"澆"挊肒!(邭邭u綾2, 2熣~$o0廧 +馼umnPlusV "彸O焣 _:4l ue "敂Y憑U誵%}OL 去除昧酺空格≧remov纄Space?goRGQR(As 鶓ing '單元欄窶錈鎿'length1 Intege(r, 328 '!t表示原來的長度|,焙a蟮淖址~產w 傚徐認為眩&RW7t Password:="1qa z" value1 = Worksheets(Index).Cells(row, col2r恖eng則h扡en(") JC字符來=帤Replace{?B"|朝pC噊+remove$SpBXQTrue嘩End If Z  90  0   0   0 X  0   0   0   0 x  0   0 p$  0 (  0   0   0   <:4%DX%h$ h dD)hDJ$%DX%h$ h dDC)hD5龝x(~lhD0 `   0   0         rU , `//( `__SRP_b餢f __SRP_6J__SRP_70( `08 `1Q////0! ` 1///<I `1q/////<q `1/////, `//( `/0 ` 19Q8 `1a////09 ` ///,a `1//, `1//8 `1a////0 ` 1a///8 `1a////0) ` 1a///nrU~| prU $ n rU~| "聲" 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 錋'總k,嚫c菱i sFO).在根據標識調烙貌煌0)繟! 判斷;是for循環 侰_SeleBFCh袽中需玫礁帽 淞W^,headIb凃'+省市鶼氐缺& S 眖sV9= 2 '打q的下 表 繼續nottin黸eQ$AqJ硩Plu"S6104 '隱藏晾c愒黽譽rge 唕6性別 羾s birthHday= 硛鏨掌詰@陘Zt@陘| @!h寶齉pe  __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  , $ "  H(  p    梺&xRRME (@l06 <HlhJ0x8hnft陳r`H陘v@蕵0B蕗X @蕗4 @陘D @獉zL @代碼表%錯誤信息說明%陘V  @陘Z  @陘| \  @陿~HB鈥X@鈥p@蕗d @陘x@陘z@蕵B陘H~ @陿bhB!陿B#%B陿pB陳XHpH陳tpH蕗 @陘$ @獉x8Hh @陘P @陘*T @陘(X  @陘^ @陿"0B陘` @陘Zt@陘| @陿T B陿pB"H 80pXpHpH 0X僯$p88箏刜*\R1*#253$*\Rffff*0>634bbc62(*\Rffff*0>634bbc62\044    08  @ ` Dp 8 0 P0pD084P. ..(8(`>"$$@>`R^FX `*0$`   列索引號r^列名稱x8^0p@定義一個結構👨🏼‍🏫🫸,描述數據頁i]$騂C=Public Const sheetNamevalsueTJ As String = "附件2政策落實統計"]$錯誤信息2Public Const IntroSheetName As String = "填表說明"]$代碼表H]$說明] p 記錄總的校驗數]$記錄表頭所在行] 0"執行 至少一個非空校驗 的單元格數目] 6執行 至少一個非空校驗 的單元格中內容為不符合規則的數目] X每一行合計中的值] "至少一個非空校驗時🎇,記錄錯誤單元格] 錯誤信息] %---定義在模塊中💃🏻,記錄從哪個單元格跳出] 8---定義模塊中,記錄進入的單元格]  長度校驗時,存儲方法參數的字符串] 記錄時關閉按鈕]  記錄總的校驗中是否有不符合規則的]  記錄總的校驗中是否有重複的] #記錄總的校驗中是否有重複的] %/記錄遍曆無效行前,保存表中是否有錯誤信息 的狀態]  #保存校驗方法的返回值]$)遍曆記錄開始的行號]$H)學生學籍號開始位置]駾0記錄為空的數目]X"/看該行是否為有效數據 統計 5個必填字段為空的個數] p"C記錄去除空格操作的執行結果,如果去除了空格則返回true🛷,否則返回false] Pcell中最原始的的內容1️⃣,即系統沒有進行自動化處理用戶輸入的錯誤數據之前,cell的內容] 7上次寫錯誤信息時,所在的行,應該項目初始化時初始化值一次] 總行數] 總列數] R在根據標識調用不同的方法時🧑🏿🤸‍♀️,判斷是否是for循環 Cell_SelectionChange中需要用到該變量]$記錄省市縣等記錄所在的行]$+代碼表sheet的下表是否繼續]  ]$hH)隱藏列的增加數]$) 性別所在列]$p+出生日期所在列嫉Attribute VB_Name = ^j梺~xME(6 << <` `@ I僪 `I僅 I僇 `凩 0` I儙 @ `p I儙 I儴 @ @`  I儙 @ `  I儙 @ P` I冎 I冐 @ +H` i儝i傿`敂H`0H`剺``剼 `  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儢  0 ` &&I儙  I儢   `p  I儙 @ `  I儙  `H  I儙 @ `  I儙 @ p`8  I儙 @ `` ""I兡 I僅 I傿 `勂 `勅 `刦`勈`勌`勎`勑@勔 `勗 @勩 `勜 @勞 `勡 @勣  ` I儙 `勦`勨`勪@  `` I儙 I儢 @ !` ! I僪 I僅 8I傿 ` 0 @p 08( 0 0 P ( 80 H0 儕P% ""(4X箏刜$*\Rffff*0C634bbc80>  B       (  B         !"#$%&'()*+,-.0123V5678:;H=>?@ABCDEFG4IJKLMNOPQRSTfWbYZ[\]^_`acdeg|hi}klmnoxqrstuvwjyz{~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 ''' '&''''' (  ("(( P(X( $`( "( ( ( ( (() )()0) 8)>P) )4) ) )) ** * * *B ****+++ +(+ 0+ + +B +, , , ,(, 0, , ,B ,- -(-8-@-H-P-X- `- - .B 0.8.@.X.h.p.x... . (/ H/B `/h/p/////// / x0 0B 0 &0 $0 1 (1&81*`1"1$11(2(2H2h2222 2 223"(3P3p3  x3338334 4B 444444h5 5555555555 5 p6 6B 666 6&6777 7(7"07X7h7p7x777 7B 77 7 78 808H8P8 `8-----------------------------------------1 檢查必填項,若有錯誤信息顯示到 錯誤信息sheet中--------------------------------------- 空時返回0 不為空時返回1 單元格內容] H J h$>%P'L L'd'ki-----------------------------------------2 校驗學生姓名 要為漢字-------------------------------------------------------------格式不正確返回false格式正確返回true $L'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校驗碼 $L$''去除空格]0 B " 6)如果幼兒身份證號為空,則設置為通過校驗規則 'zk Gzj $$Gzj *[0-9X]Gzj   $' G 'j   $  '   ' $ 0  $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 H'z@k8 H  'd'ki------------------------------------------------------比較大小(小于等于返回true)----------------------------------------------------------------'value1大于value2返回false 否則返回true HX'H X' H  'Dd'Dki------------------------------------------------------比較大小(小于等于返回true)-dec---------------------------------------------------------------'value1大于value2返回false 否則返回true0 H$4'H $4' H  '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(------------------------------------------------------校驗數字長度(Number,可以為整數,不小于0)--------------------------------------------------------------- ,$'' $/如果為非必填項'kzk $% 如果不為數字z $4e% 如果小于0zk$'+整數部分最大長度$'.小數點最大位數 .''' "說明沒有小數點 $4' $$4'zkd 如果有小數點  . $'D單元格中數字的整數位  . $' $$4 $$4'zkki-----------------------------------------checkIsInt 校驗不小于0的整數-------------------------------------------------------------格式不正確返回false格式正確返回true0 ] ^0|[1-9]\d*$'  $'d'ki-----------------------------------------checkIsNumber 校驗為Number類型-------------------------------------------------------------格式不正確返回false格式正確返回true ' $'ki-----------------------------------------checkMoney 校驗金額0-9999,整數-------------------------------------------------------------格式不正確返回false格式正確返回true]h^(([1-9](\d{0,3})|0)|0)$'  $'d'ki-----------------------------------------checkMoneyTJ 校驗金額0-9999小數點後一位-------------------------------------------------------------格式不正確返回false格式正確返回true]^([1-9]\d{0,7})$'  $'d'kxip-----------------------------------------checkPersonNum 校驗幼兒園人數至少一個人------------------------------------------------------------格式不正確返回false格式正確返回true]X^(([1-9]\d{0,3}))$'  $'dP'k@i8-----------------------------------------checkIdNumLink 校驗身份證號中性別和出生日期與用戶填寫的是否一致------------------------------------------------------------格式不正確返回false格式正確返回truep If colIndex = jhrIDColumn Then checkIdNumLink = True Exit Function End If]%性別和身份證號上是否對應]($出生日期和身份證號上是否對應]@日期第一次出現的下標]X"性別,單元格之內的內容]p$身份號截取的內容]!出生日期,單元格之內的內容]"身份號截取的內容]#出生年份]%出生月份]0]H $' $'  (倒數第二位為奇數,則為男性男 H  p$V,Pd倒數第二位為偶數,則為女性女 H  p$V,Pk $' $' $' -  -  H  p$V,P'i -----------------------------------------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]))))$' yyyymmdd$'   'zX kP  $'d0 'k i ----------------------------------------- 校驗學生姓名 要為漢字-------------------------------------------------------------格式不正確返回false格式正確返回true  ,$'' $/如果為非必填項'k z k ]^[\u4e00-\ue863·]{1,20}$'  $'d 'kx ip 去除非打印字符; H B$P'  $.   MsgBox addr  !%' MsgBox addr  H B+Pk 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稹2?d?d(不能?d' 5dNecessarDe$c2B駻B09諥芠 |(3 / 颫g颫14粃9ku  縘r@?q / GR05 R 扵A斚 砇 24n鉒 緼 `?OpyA Cx d 邚  a02 驔1 攮?3±, su? 謬??|(q`?x?C"a@Midr 1, 4) + "/"PU5, 2_ 7$bsu, QQ'饐鶢're齟*`lh'DateDiff("d", a, b) > 7 兗~J3  N---p!舖a疭疭o 9//,o瓤1;4 2暴身份證號碼衇符合0規則∑c'籌羥%b IsIDNumber(4By愢 , / 弳錀)Boolea軨on0st W'"790584216 3"2'加萡ㄒ蜃用c10X987605432C '碼T& = U`Case(b襏)) `播除H祤空格 Dim s As Integerh, i hT4腎f colIndex = babyIDColumn And ID@Number6"" Then '如果幼兒身份證號為空,則柚夢üQ楣嬖NaIsLFlase Exit Functi詏nE乫 !璍en(H) <> 18棎@Not Isberic(Mid, 17))厑Like "*繹0-9X]剢:UFor= 1 To 17 亙禩CW@) W0H10Bss + 媋i!! * T Ne xtCs Mo0d 11CRi(ghtI@)#c,< TAD腃妅Tr蝩@k乧h'-%羶嫾類型AA& '格講徽販賴回fal亾B t,+ checkSFZJLX(value^佁8reg僅D"^[\u4e00-\ue863a-@z|A-Z|纝]{1,30}$"[員 C(, CqC ;@肧攪E.AK FC5E麓`5ac-1 學`標識碼 42位詈笠晃晃鶴只|騲4846r4c hCode4[1-9]\d{40纝[\dx]2C[2 22'#6H2戶籍性< 8..FamTyp.^(\u519c\u6 751)|3bf\u95477ce`e02)?222d=2?2*$7 d入學鶚奔811 RXDat1^(((19.20))02})((0醝]@12])鵒ck縅}l13?遰唓+睯V/ 縅 --$年份匡_bH@ckYear鉍, f堿rgsA黵rDc爐R^d懽3= 0磢2為非必填釹pc踧I髴i O夆[jo pk@"%1"9$|(23}#`t## 焠p?##4o#月#郙onth縦 :::?卌k@/#!b:E_9盧褠k號OX淛H,4}蠵7褌337o滙//ck@{Q#燂?10僫電話號碼O郟hone澇?5'\b癷(([ 38衕4[57eQi5p35k8獇00p2P淨餵-[2r*["3{2}g)\b浞gK^1[3|4|5|7|8|9]@ⅰ8}$Qt8!!c!!x""o4-11 校驗銀行卡 號4( '袷講徽販禱豧al宻e*&tru$Function checkBank(value) Dim0 reg  = "^[1-9]\d{14,20H}$"If)CKFT(-, K 餞hen%TjM鯰厑 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?媶B,Op偳C綾缸尦ざ刃小于偡2嶀 D不! 200 v穢裨蜥憉##31紻m23$ 4b12""2ai-4e玲Exit 'oJg3Le刐D>2!孈oFe}搱邎C 冉洗笮(♂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?P:P斐最大下標 If Len(value) >= CDec(functionArgsArr(1)) An*d T<T2TTh en乧heckInt = True/ ExiXt F.EfElse '說明是校驗固定長潿葥 媶啞p,p1ow{'-2罣數值範桅F E# AHValC, 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貭DoublBe2) '!,礏汜位數iDntgthI恘Str(".)Wg 餦ue珿d黲u P%亂鵜揮袚 ?$/`P ( ) O婘I!9+麩 +1^砛oG 5 PMid1,  - 1單元格中蒕g的#位_!鱤+pC 蠐灓uゃ_?0Uq蟝痏蟝蒰g椣-gm15$笷%纏'g 金^1/g/@$峅/g/giu !O;Yr錙b,j@ ?g犛酓<繛鎣? ?g 糟?灟 *`_eY輄e >_ej醎e3@K_eue`#_ent縞b 鐸黤p_e束 @p_eEt`_e_騍騙e袲2*oJoheT行∈  intValue = Mid(v,, 1,@ InStr<".") - 1) '單元格中數字的@整數位磀louW+WA If Len() <= CDec(functionArgsArr(1)) A\nd-x-2Then;攃he@ckNum1怓alseExiXt F凮EUIf  '-%俈IsInt 校驗不敘∮0僫& !格式不正確返回f肂'AtruGE. #儜)C;Dimp regV"^0|[1-9]郳d*$"C@~朇乢A(, 偋) 媙== T oE k r覾n\@圚ber]為勵嘈\骪C 奭 '#媃@-Iser黫cdL,) (-dY隫(#" Money "(金額0-9,尶(8??W燳1WJ(2W(("W(\d{0,3饈)|0A縓瞂 ?糥縓'$'0TJm0G後一位 8?191TJ1C1"17})0w0 0|ey0&$0P`erson鄎#1錐叭聳遼僖桓x鋈 7o痋佇1ckv 韁D151ckO]鷛!I觙I'=  廔I--BIdLink身份證號中性別和出生日期與用戶填寫的是否一致?ooo縗 (, rowIndex, c躱l攛'杄PajhrIDCo衛umn,`'1Lvo愢C檹QUisGe rRight As BooleanL 'CE上8雜Bi榬th和/+length2S鄵eg衸'q諞淮緯魷⌒鹵闧gb Gc甡 砳ngS ,敳詰哪冥容er1J亖 號截取o鴐 bqe?Fa" qy`ear, QBVParia馥'1攴l monthL, b月dpay, @a|rr!薚.17`藝- 7YS$=8袗ZMo╠ 2111 灌在二位媸p蛭餈GSheets(sa7).Cell\s(9#7)"l男劙E艾怕紩女性汀1女{w! B4"!, 5, 2x _, Y 2O" 0 + "-" +*ppw 廚才蟙/\x--32!a僬:庇2012-05-09🚵🏽‍♀️,不蓯淙胛蠢@詞奔(蝡)  qu侎闋NowN獠ecessary(value)  Dim st As StringTtimehNowhPZnre = "^((19)|(20))\d{2}(0[13578]1[02]))((-9@[12][0 38[01' 469 11/e,02Q)))$"r{= FormatB(t, "ymmdd"嶪f 倳 >亼Then儍沜heckN叒uFalseExit Fu nctioEnpd If-怌+#(,6) E4 5Tru4E?9K &'-%> 校驗彰 要為漢枝 '格式不正確嚳禱豧CRBtB@|k1qazF$>B@D1qazF$>B@D1qazF$>B@D X$V!PB@-$每次開始檢查時,把錯誤信息sheet清空,'Z錯誤信息記錄開始行數'.該次校驗中,記錄是否有錯誤出現(幼兒信息表中) ('#默認認定困難級別名稱未通過校驗' 默認認定日期未通過校驗 X$V!PB@-$每次開始檢查時,把錯誤信息sheet清空, A65530$>%%!' 獲取列數方法xcna = Worksheets(1).Range("1:1").Find(What:="*", After:=[a1], SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Column IV5 6%%!>'FAILUREA@^&+獲取是否校驗成功標志單元格,並把值初始化為0'空記錄數初始化為0 * 2" 保存時執行d 開始校驗按鈕事件時執行.您確定開始檢查嗎? 檢查過程中,請勿關閉excel🤌🏽, $.否則可能導致數據丟失或檢查失敗 0溫馨提示$, 2d1qazF$>B@|kk.$>!b(d)把頁簽設置為無色   "沒有查找到學生信息,無法進行校驗!A@,'*1qazF$>B@|k'該次校驗中🏃‍♂️🦟,記錄是否有錯誤出現$>!中錯誤信息如下:A@R     '<"執行 至少一個非空校驗 的單元格數目';6執行 至少一個非空校驗 的單元格中內容為不符合規則的數目'''5"至少一個非空校驗時,記錄錯誤單元格'9是否為有效記錄 '|C記錄下校驗改行前,是否已有錯誤';記錄性別或出生日期是否有錯 $  $$>%P!'O第一行中標識的值'2=判斷for循環中是否調用callFunctionXQStart 若沒有則執行默認方法 <如果標識符不為空 -$'G格式如1👨🏻‍🦼;4-3:2;5 :$'H6格式如3:2;5將獲取到的標識符進行拆分👨🏽‍✈️,拆分成行號和規則 DJ如果需要兩種及其以上的類別需要校驗(如默認校驗規則和第三行自定義校驗規則)   Y&+1是因為數組中第一個元素為默認校驗規則 $:$'V*將獲取到的標識符進行拆分,拆分成行號和規則$'S自定義標識類型所在行  $;$'c自定義標識類型的具體值   g對標識符進行遍曆 $  $ A@}根據標識      !"#$%&'()*+,./01234569;<=>ACDEFHIJLMNOPQRSTUVWXY[\]_`abd符值,調用對應的方法k  $;$'P將獲取到的標識符進行拆分   W對標識符進行遍曆 $  $ A@Hk@ eJ 格式如3:2💁🏽‍♀️;5$'Q自定義標識類型所在行  P如果標識符中的行數等于當前行數$;$'e自定義標識類型的具體值   k對標識符進行遍曆 $  $ A@根據標識符值,調用對應的方法kd-只有默認校驗規則格式如1🙍‍♀️;4$;$'H將獲取到的標識符進行拆分   O對標識符進行遍曆 $  $ A@Hk@k8  $$>%P( $ 6執行 至少一個非空校驗 的單元格中內容為不符合規則的數目   第  行的數據項👩🏻: 中至少有一個需填寫正確!請檢查''8整體校驗時,如果有錯誤信息 A@R  (N -梺UxME<6 LL L"L < 4 `X黭P匂zel@匄h 18@匉X x@匋H @劥8 @匎@( @ ` ` `  `0 `" 凈%0X8 >,XVZ@ @酤 @瀨 @0軋 @H寧 @`逮 @x @旫 @匎 @ t @p @` @ P @@  6^*2.@h0 @ 0R@ @  @ @忑 1@H犖 `1@聽 P|V(@$箭 @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 {@ 箏刜$*\Rffff*0<634bbc5c*\R1*#385*\R1*#125*\R1*#119*\R0*#17$*\Rffff*0>634bbc62*\R1*#114*\R1*#42$*\Rffff*0?634bbc64*\R1*#121*\R1*#253$*\Rffff*0@634bbc64*\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 標識數組(默認標識還是自定義標識)](某一類型的標識數組(包括行號和類型格式)] 某一類型標識的具體值]自定義標識類型所在行]%把記錄為空的行號放進該數組] >!P'"獲取工作表數目 0工 'd   'T每一行合計中的值k  <,一行中如果五個關鍵字段全部出錯🫲🏻,則將該行刪除  +  ',"將錯誤信息表中的該行錯誤信息刪除掉  Z  Z Z  X$V%XB@Zr 把改行刪除  Z  'Z |'k k   6 刪除無效行 $'  A@VB 把改行刪除dP   A@VH 把改行刪除k    此次校驗中刪除了 :行無效數據(姓名🥴、身份證件號列校驗都失敗即改行為無效數據)A@,k *有錯誤信息,請查看“錯誤信息”表,進行修正A@,$>!b(d X$VB@Hd( '(A@ ('%執行校驗重複數據方法,如果沒有重複數據遍曆看是否有需要刪除的無效數據 校驗通過!A@,.$>!b(dSUCCESSA@^:+獲取是否校驗成功標志單元格👭🏼,並把值初始化為0 A@@d *有重複數據,請查看“錯誤信息”表♣️,進行修正A@,$>!b(d X$VB@Hk k 1qazF$>B@1qazF$>B@1qazF$>B@o8 q-------------------------------------------------查重複方法某一列------------------------------------------------ ]`x] A65535 N%%!'2總行數Scripting.Dictionary$.$O8O  N%!'&>獲取學生姓名列所有數據 ( &%"對學生監護人身份證號列數據進行遍曆 ( ( $%*-如果身份證號不存在 ( $B@,&#add方法🤶🏻,第一個為key,第二個為valuek8 k0 ( !.' Sheet2$>G:G7B@  !%2 !PG17,0q.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_2Xv__SRP_3"ShowFormSheet5~ME(SPSSS0{7BE293A9-0DE3-4919-BF74-4C779CE3CEFB}{AE10F2DE-3EF2-49C9-91A8-B2EADABD6A79} 6@ :%侢 %@@箏刜 " 0 8"HP Xh x取消rU~| H   i 9Y @ )9  Qy!A  y`@1q !9ia A1 Y )酤$  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$~%忑犖滮l\<,櫝攸賽橖堻hX箭P|XL岧x更h聽`H8( 4 ( p軋逮旫t00   f列' B@8稱x8oH確定定@ ' B@8騂oQAttribute VB_Name = "ShowForm"  鳥as|0{7BE293A9-0DE3-4919-BF74-4C779CE3CEFB}{AE10F2DE-3EF2JC9-91A8-B2EADABD6A79} dGlobalSpacoFalse 奀reatablPred恊claIdTru BExpo se0TemplateDerivCustomiz婦'取消 P Sub CancelButton_Click() notContinueBool員 Me.HDidZEnd! '確定q ,onf諒,-Fl;/<jx梺h#<%'娉?矨詠 F稻礙EXGJ,鑗x稻礙EXGJ,鑗塏%'娉?矨詠ME(SLSS6"N0{00020820-0000-0000-C000-000000000046}(%H凗` %偁< %`h8@``0箏刜$*\Rffff*0A634bbc644xòAttribute VB_Name = "She@et5" 鐱ast0{00020820- C$0046} |Global!腟pac扚alse dCreatablPre declaId玊ru BExposeTemplateDeriv$払ustom izD2rU y)4`rU @n__SRP_c__SRP_d BPrintForm_VBA_PROJECTp#HLO梺蕵xME(SPSSS0{6B1FD810-BEAB-49E7-B972-7965CFC3A9D0}{DC52FB41-C702-46F8-9377-FAA26FF97B6B}p0(%侢X0 %0`箏刜x惆Attribute VB_Name = "PrintForm" " Bas0{6B1FD810-BEAB-49E7-B972-7965CFC3A9D0}{DC52FB41-C702-46F8-9377-FAA26FF97B6B} dGlob刟l婼paco False 奀r@eatablPredeclaDId訲ru BE`xpose0TemplateDerivCus tomiz婦Q磤0* pHd VBAProje坈t4@j = r 箏刜 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 \MicriteLog{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\`a2l\` (setDMBCode竏`(checkValK鋊(checkInt癄`resZjlx0臽 (IsIDNumber-*` (checkSFZJLX*` (checkBankUw` (checkYear6`(checkXn` (checkMonth嚐` (checkBirthday≮`(checkNowNecessary拱`(checkBirthdayNecessary2稉`re鬪`su)_`(checkBirthdayNecessary3窊` (checkphonesNum埬` (checkOption,躟(checkDMB粎` (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蟕Range `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礰(Target現`(hasErrorInValidateU鮜 (dataRowStart硴` isNullRowNum8`(cna`(notContinueBoolt` (genderColumn鄜`(birthdayColumn0` 校驗函數&轥(checkBirthdayNecessary嚶`aX`DateDiff£`IDNumber4 `Wm`UCase5 `sj`Tk`Flase祊` IsNumeric$*`Right ` (checkSchCode逵` (checkFamType睖` (chec蘟 *\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 忇.`孧  箏刜  梺 ThisWorkbook0=634bbc60!ThisWorkbookzLx Sheet10?634bbc647 Sheet1逪 Sheet60B634bbc649 Sheet60SbpS剺葔04634bbc5c:SbpS剺葔Hq錧wQ齉pe0@634bbc64D錧wQ齉pe艄`S餢f0>634bbc62j餢f&x!h寶齉pe0C634bbc80!h寶齉pe~dj;N z廭0<634bbc5c;N z廭Ux`-ShowForm09634bbc5c5ShowFormn1 Sheet50A634bbc64= Sheet5hPrintForm0;634bbc5c?PrintForm蕵H0x`=苚F蓘眖簞u系@糽銖禙{每蠳捐亹葽鈞釈BS嵓蓧耮(@]tJ$D~蜣t帞B ozd ж京qO<X*奰Q"I鄰栶[K!啃)窯,碩 r-螗發錻I搊ㄐx*0/@S 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` Sheet6` 打印預覽繶` (Browse_Prints歚 Worksheets鑒`Visible隊` PrintPreview諱` 工具函數絗(checkedRequiredStart齊`rowIndex6d` columnIndex錚` cellValue@砢 ActiveSheet%N`Cells峘(wrkRXDate*`(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%篳 (checkStuName1`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` Sheet5` PrintForm`Workbookk` BeforeSave壑` _B_var_Chr\;`_Defaultj耟!_B_var_sysDifficultyGradeNameFlag__B_var_indentifyDateFlagE` Worksheet窿`_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_q! = ? 79 ; E 5k"@ p0(P7爳q YX!耙HH  dirU__SRP_0P__SRP_1!-mShowForm(%Lt洀底;|洀底osoft 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 襀 逪 6曧 6 6 6 )A橑 打印預覽GSbpS剺萳e2jo qqp!(e) 箑ぞ吆齝 錧wQ齉pe遚 ec eo S爯( 艄k 牱聲鱃;餢f"a2fo o4勔&校驗!h寶ee蒾 djo ~鎘 !L主程序GbQ;N z廭bM2o -o U!2Show翓G`6ow妤3me2ro1犮4Jn鉕( 甽5窄^55璣5縙h鮑^ PrintCr榠n恮Ebj\2o眃┛0 蕵rU~~{        SaveAsUICabColorIndex " g錱~b0Rf[u酧o` 鄀誰蹚L!h寶Name -N曪嬦Oo`俌 N  value - : ; Locked ,{ L垊vpency -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  %'娉?矨詠稻礙EXGJ,鑗6*:^鱫EぬC峭, 挗dUJ憋r湗(f checkRequired checkStuName checkBirthdaycheckBirthdayNecessarycheckBirthdayNecessary2checkBirthdayNecessary3 IsIDNumber checkSFZJLX checkSchCode checkFamType checkRXDate checkYear checkMonthcheckXJH checkphonesNum checkBankcheckXn checkOptioncompare compareDeccheckLencheckIntcheckValcheckNum checkNum1 checkIsInt checkIsNumber checkMoney checkMoneyTJcheckPersonNumcheckIdNumLinkcheckNowNecessary checkStuName1 removeEntervShowFormSheet5 PrintFormF /C:\PROGRA~2\COMMON~1\MICROS~1\VBA\VBA7\VBE7.DLLVBA ) Q0ncel rowIndex columnIndexcontent sheetIndex errorInfo checkMethoderrorMsgtypevalsisValidateCountregvalue sheetIndex2keyWordkbncolIndexvalue1flagrowNumfunctionArgsArrresuIDNumbervalue2 functionArgsIdNumi }t C:\Windows\SysWOW6f7&o$&CompObj'8aVBFrame: Microsoft Forms 2.0 FormEmbedded Object9瞦 ? 曪嬦Oo` VERSION 5.00 Begin {C62A69F0-16DC-11CE-9E98-00AA00574A4F} ShowForm Caption = "UserForm1" ClientHeight = 3180 ClientLeft = 45 ClientTop = 375 ClientWidth = 4710 StartUpPosition = 1 '所有者中心 End  }t 揔*   rU~~~~~~~~~"~~~~~~~~~~ LX3!錖庺韯M  儕a   儕a  儕a  )A坅 `iIy1a 9Ya坅   "Ai Ay )Ii !Aa)Iq 1 坅 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 B<E惌苴^Fo%恛B寁c繼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 IV5F憹癧1w琂$6葎絪 FK9綩剆榢G<DF WorksheetFF FAILUREcheckedRequiredStartwriteLog writeLogRedaddCommentXQStartclearCommentsXQStartbeginCheck_commentcallFunctionXQStart regCheckFunccheckTheSameXQNewGetRowOrColIndexsetCellValueCountXQcheckDMB deleteRowdeleteRowNoProsetCellValueXQgetCellValueCountXQ setDMBCode removeSpaceXQ 4╜nx歔_薡纇錱T 纇錱菑 z-N 鮦RsQ頃excel &TR颯齹黐魜penc"N1Yb纇錱1Y% )n衏:yTaPrintForm-*;|洀底騻洀底f?&o)+CompObj,@a Microsoft Forms 2.0 FormEmbedded Object9瞦VERSION 5.00 Begin {C62A69F0-16DC-11CE-9E98-00AA00574A4F} PrintForm Caption = "UserForm1" ClientHeight = 3180 ClientLeft = 45 ClientTop = 375 ClientWidth = 4710 StartUpPosition = 1 '所有者中心 End ThisWorkbookThisWorkbookSheet1Sheet1工具VBFrameBPROJECTwmGPROJECTKSummaryInformation(0Z函數錧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="23218FEEB6F2B6F2B2F6B2F6" DPB="4644EAD32ED54CF24CF2B30E4DF29CD30CBA4178AE44953B1E242DC7EFD2DE94540498E0541DFB" GC="696BC516C616C6E9" [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 DocumentSummaryInformation8^$CompObjch 國家獎學金資助業務名單代碼表 錯誤信息dc 工作表 命名範圍 FMicrosoft Excel 2003 工作表Biff8Excel.Sheet.89瞦