Excel دىكى ئىختىيارى ئىقتىدارلارنى قانداق يېشىشنى ئۆگىنىۋېلىڭ

  • ھەمبەھىرلەڭ
Michael Brown

مەزمۇن جەدۋىلى

سىز UDF نى قانداق قۇرۇشنى بىلگەنلىكىڭىز ئۈچۈن (ھەمدە ئۇنى Excel دا ئىشلىتىپ سىناپ بېقىشىڭىزنى ئۈمىد قىلىمەن) ، سەل چوڭقۇرلاپ قېزىپ ، ئىشلەتكۈچى بەلگىلىگەن ئىقتىدار ئىشلىمىگەن ئەھۋال ئاستىدا نېمە قىلغىلى بولىدىغانلىقىنى كۆرۈپ باقايلى.

ئىختىيارى ئىقتىدار قۇرغاندا بەزى مەسىلىلەرنى ھەل قىلىش ئۈچۈن ، سىز چوقۇم ھەل قىلىش ئۇسۇلىنى ئىجرا قىلىشىڭىز كېرەك. ئاندىن سىز بۇ ئىقتىدارنىڭ نورمال ئىشلەۋاتقانلىقىغا كاپالەتلىك قىلالايسىز. خاتالىق سادىر قىلىدىغانلىقىڭ ئۈچۈن. خاس ئىقتىدار ئادەتتە بىر قەدەر مۇرەككەپ. ھەمدە ئۇلار ھەمىشە دەرھال توغرا ئىشلەشنى باشلىمايدۇ. فورمۇلا خاتا نەتىجىنى ياكى # قىممەتنى قايتۇرۇشى مۇمكىن! خاتالىق. ئۆلچەملىك Excel ئىقتىدارلىرىغا ئوخشىمايدىغىنى ، سىز باشقا ئۇچۇرلارنى كۆرەلمەيسىز. ئەلۋەتتە! بۇ مەسىلىنى ھەل قىلىش ئۈچۈن ئىشلىتىلىدۇ. GetMaxBetween ئالدىنقى ماقالىمىزنىڭ بىرىدە كۆرسىتىلگەن قىممەت دائىرىسىدىكى ئەڭ چوڭ ساننى ھېسابلايدۇ:

ئىقتىدار GetMaxBetween (rngCells As Range, MinNum, MaxNum) Dim NumRange Range Dim vMax Dim arrNums () Dim i Integer ReDim arrNums (rngCells.Count) ھەر بىر NumRange ئۈچۈن rngCells vMax =NumRange Case Case vMax Case MinNum + 0.01 MaxNum غا - 0.01 arrNums (i) = vMax i = i + 1 دېلو Else GetMaxBetween = 0 ئاخىرقى تاللاش كېيىنكى NumRange GetMaxBetween = WorkheetFunction.Max (arrNums) ئاخىرقى ئىقتىدار

ئىقتىدار تالاش-تارتىشلىرى. سان يېزىلغان كاتەكچىلەرنىڭ دائىرىسى ، شۇنداقلا قىممەتنىڭ يۇقىرى ۋە تۆۋەن چېكى.

MsgBox ئىقتىدارىنى مۇھىم جايلارغا قويۇڭ ئېكراندىكى ئەڭ مۇھىم ئۆزگەرگۈچى مىقدارلارنىڭ قىممىتى. سەكرىمە سۆزلىشىش رامكىسى ئارقىلىق بۇ ئىشنى قىلغىلى بولىدۇ. باشقا VBA ئىقتىدارلىرىغا ئوخشايدۇ: MsgBox (تېز [، كۇنۇپكىلار] [، ماۋزۇ] [، ياردەم ھۆججىتى ، مەزمۇن]) ئۇنىڭدا سۆزلىشىش رامكىسىدا كۆرگەن ئۇچۇر بار. ئۇ يەنە يەككە ئۆزگەرگۈچى مىقدارنىڭ قىممىتىنى كۆرسىتىشكە ئىشلىتىلىدۇ.

باشقا بارلىق تالاش-تارتىشلار ئىختىيارى بولىدۇ.

MsgBox دا كۆرسىتىلدى. مەسىلەن ، بىز vbOkOnly تاللانمىسىنى ئىشلەتسەك ، ئۇنداقتا پەقەت OK ​​كۇنۇپكىسى كۆرۈنىدۇ. بۇ تالاش-تارتىشنى قولدىن بېرىپ قويغان تەقدىردىمۇ ، بۇ كۇنۇپكا سۈكۈتتىكى ھالەتتە ئىشلىتىلىدۇ.

[ ماۋزۇ ] - بۇ يەردە ئۇچۇر ساندۇقىنىڭ نامىنى بەلگىلىيەلەيسىز. مەشىق قىلىدىغان سۆزلەر ۋە يېشىشنى باشلايدۇ. كۆرسىتىش ئۈچۈنئۇچۇر ، دېلو Else مەشغۇلاتچىسىدىن بۇرۇن GetMaxBetween ئىشلەتكۈچى بەلگىلىگەن ئىقتىدارنىڭ كودىغا تۆۋەندىكى قۇرنى قوشۇڭ:

MsgBox vMax ,, "Count -" & amp; i

بۇ نەتىجىگە ئېرىشىدىغىنىمىز:

فۇنكسىيە GetMaxBetween (rngCells As Range, MinNum, MaxNum) Dim NumRange Range Dim vMax Dim arrNums () Dim i پۈتۈن سان ReDim arrNums (rngCells.Count) RngCells دىكى ھەر بىر NumRange ئۈچۈن vMax = NumRange Case vMax Case MinNum + 0.01 دىن MaxNum - 0.01 arrNums (i) = vMax i = i + 1 MsgBox vMax ,, "Count -" & amp; i Case Else GetMaxBetween = 0 End Next NumRange GetMaxBetween = WorkheetFunction.Max (arrNums) ئاخىرقى ئىقتىدار

سۆزلىشىش رامكىسىدىكى vMax ئۆزگەرگۈچى مىقدارنى ئىشلىتىپ ، قايسى سانلارنىڭ تاللاش ئۆلچىمىگە ماس كېلىدىغانلىقىنى كۆرىمىز ، شۇڭا ئۇلارنىڭ ئىچىدىكى ئەڭ چوڭىنى تاللىيالايمىز. «ھېسابلاش -» ئىپادىسى بىلەن & amp; مەن ماۋزۇ بالدىقىدا ، ئەڭ يۇقىرى قىممەتنى بەلگىلەش ئۈچۈن ئاللىبۇرۇن قانچە ساننى تاللىغانلىقىمىزنى كۆرسىتىمىز. ھەر بىر يېڭى قىممەت بىلەن ھېسابلىغۇچ كۆپەيتىلىدۇ. بېسىلسا ، تۆۋەندىكى رەسىمدىكىدەك ئۇچۇرنى كۆرىسىز:

بۇ A1: A6 دائىرىسىدىكى ئۆلچەمگە ماس كېلىدىغان تۇنجى سان: 10 دىن چوڭ ، ئەمما ئۇنىڭدىن تۆۋەن 50 دىن ئېشىپ كەتتى.ئۆلچەم. شۇڭلاشقا ، بۇ ئىقتىدار ئىككى قىممەتنىڭ ئىچىدىكى ئەڭ چوڭىنى قايتۇرىدۇ ۋە قايتۇرىدۇ. يەككە ئۆزگەرگۈچى مىقدارنىڭ ئۆزگىرىشى. چوڭ ئىقتىدار ۋە ھېسابلاش كۆپ بولغاندا ئۇچۇر رامكىسى ناھايىتى پايدىلىق. بۇ خىل ئەھۋالدا ، كودنىڭ قايسى قىسمىدا خاتالىقنىڭ يۈز بەرگەنلىكىنى ئېنىقلىشىڭىز ئاسانغا توختايدۇ. سىزنىڭ فۇنكىسىيەڭىز كود ئىجرا قىلىنىشتىن توختايدۇ. شۇڭا ھېسابلاش جەريانىنى قەدەممۇ-قەدەم ماڭالايسىز. بۇنداق قىلغاندا ، ئۆزگەرگۈچى مىقدارنىڭ قىممىتىنىڭ قانداق ئۆزگىرىدىغانلىقىنى كۆرەلەيسىز.

بۆسۈش ھاسىل قىلىش ئۈچۈن نۇر بەلگىنى توختاتماقچى بولغان جۈملىنى ئۆز ئىچىگە ئالغان قۇرغا قويۇڭ. ئاندىن ئوڭ تەرەپنى چېكىپ ھەل قىلىش - & gt; بۆسۈش نۇقتىسىنى ئالماشتۇرۇڭ ياكى F9 نى بېسىڭ. فۇنكسىيە كودىنىڭ سول تەرىپىدىكى تىك كۈلرەڭ رايوندىكى لازىملىق يەرنى باسسىڭىزمۇ بولىدۇ.

تۆۋەندىكى رەسىمدە كۆرسىتىلگەندەك قىزىل چەمبىرەك كۆرۈنىدۇ. ھېسابلاش توختىتىلىدىغان كود لىنىيىسى قىزىل رەڭدە گەۋدىلىنىدۇ.

ھازىر ، ئىقتىدار ئىجرا بولغاندا VBA تەھرىرلىگۈچ كۆزنىكى ئېچىلىدۇ. نۇر بەلگىسى سىز توختاتقان نۇقتىدا بولىدۇ.قىممىتى:

ھېسابلاشنى داۋاملاشتۇرۇش ئۈچۈن F5 نى بېسىڭ.

ئەسكەرتىش. بۆسۈش ھاسىل قىلىنغاندىن كېيىن ، ھېسابلاشنىڭ ئىلگىرىلىشىنى قەدەممۇ-قەدەم ئىز قوغلاشقا باشلىيالايسىز. ئەگەر F8 كۇنۇپكىسىنى باسسىڭىز ، كېيىنكى بىر قۇر VBA كودى ئىجرا بولىدۇ. يا ئوق بىلەن سېرىق سىزىقمۇ ئەڭ ئاخىرقى ئىجرا قىلىنغان كود ئورنىغا يۆتكىلىدۇ.

ئىقتىدارنىڭ ئىجرا قىلىنىشى يەنە توختىتىلغانلىقتىن ، مائۇس نۇر بەلگىسى ئارقىلىق ئىقتىدارنىڭ بارلىق ئۆزگەرگۈچى مىقدارلىرىنىڭ نۆۋەتتىكى قىممىتىنى كۆرەلەيسىز.

F8 نىڭ كېيىنكى بېسىلىشى بىزگە بىر قەدەم ئىلگىرىلەيدۇ. . شۇڭا ھېسابلاش ئاخىرلاشقۇچە F8 نى باسسىڭىز بولىدۇ. ياكى F5 كۇنۇپكىسىنى بېسىپ كېيىنكى بۆسۈش ھاسىل قىلىشنى داۋاملاشتۇرۇڭ.

خاتالىق كۆرۈلسە ، نۇر بەلگىسى خاتالىق يۈز بەرگەن كودتا توختايدۇ. سىز يەنە سەكرەپ چىققان خاتالىق ئۇچۇرىنى كۆرىسىز. بۇ مەسىلىنىڭ سەۋەبىنى ئېنىقلاشنى ئاسانلاشتۇرىدۇ.

سىز بەلگىلىگەن بۆسۈش نۇقتىلىرى ھۆججەتنى ياپقۇچە قوللىنىلىدۇ. ئۇنى قايتا ئاچسىڭىز ، ئۇلارنى قايتا تەڭشىشىڭىز لازىم. ئەڭ قۇلايلىق ئۇسۇل ئەمەس ، شۇنداقمۇ؟

قانداقلا بولمىسۇن ، بۇ مەسىلىنى ھەل قىلغىلى بولىدۇ. زۆرۈر نۇقتىلاردا ئىقتىدار كودىغا توختىتىش جۈملىسىنى قىستۇرۇڭ ، بۆسۈش ئېغىزى ئىشلەتكەنگە ئوخشاش پروگراممىنىڭ ئىجرا قىلىنىشىنى توختىتالايسىز.

VBA توختا باياناتىغا يولۇققاندا ، ئۇ پروگراممىنىڭ ئىجرا قىلىنىشىنى توختىتىدۇ ۋە ھەرىكىتىڭىزنى ساقلايدۇ. ئۆزگەرگۈچى مىقدارنىڭ قىممىتىنى تەكشۈرۈڭداۋاملاشتۇرۇش ئۈچۈن F5 نى بېسىڭ. ئۆچۈرۈلمىگەنگە ئوخشاش ئۆچۈرۈلمەيدۇ. ھەل قىلىشنى تاماملاپ بولغاندىن كېيىن ، ئۇنى ئۆزىڭىز ئېلىڭ. ياكى ئۇنى بىر جۈملە (') بىلەن ئالدىنقى ئورۇنغا قويۇپ ئۇنى باھاغا ئايلاندۇرۇڭ. فۇنكسىيە كودى دەل جايىدا. بۇ دەۋرىيلىك ئۆزگىرىۋاتقان ئۆزگەرگۈچى مىقدارلارنىڭ قىممىتىنى تەكشۈرۈشكە پايدىلىق.

سىز Debug.Print نىڭ تۆۋەندىكى ئېكران رەسىمىدىكى ئىپادىسىنى كۆرەلەيسىز. 0> بايان Debug.Print i, vMax قىممەت ۋە ئۇلارنىڭ تەرتىپ نومۇرىنى بېسىپ چىقىرىدۇ.

دەرھال كۆزنەكتە تاللانغان دائىرە ئىچىدىكى ئىككى سان (17 ۋە 14) نى كۆرىسىز چەك بەلگىلەڭ ۋە بۇنىڭ ئىچىدە ئەڭ يۇقىرىسى تاللىنىدۇ. 1 ۋە 2 رەقەملىرى بۇ ئىقتىدارنىڭ سان تاللانغان 2 دەۋرىيلىكنى تاماملىغانلىقىدىن دېرەك بېرىدۇ. بىز ئەڭ مۇھىم ئۆزگەرگۈچى مىقدارلارنىڭ قىممىتىنى كۆرىمىز ، بىز بۇرۇن MsgBox غا ئوخشاش. بىراق بۇ فۇنكسىيەنى توختاتمىدى. بۇ خىل ئەھۋالدا ، بارلىق خاتالىقلار Visual Basic تەھرىرلىگۈچ كۆزنىكىدە كۆرۈنىدۇ.مەشغۇلات ئۇسۇلى: ئەگەر بۇ ئىقتىداردا خاتالىق بولمىسا ، ھېسابلاش نەتىجىسى بار سەكرىمە كۆزنەكنى كۆرىسىز.

خاتالىق كۆرۈلسە ، VBA تەھرىرلىگۈچىدە ماس ئۇچۇرنى كۆرىسىز. ھېسابلاش توختىتىلىدۇ ۋە خاتالىق يۈز بەرگەن كود سىزىقى سېرىق رەڭدە گەۋدىلىنىدۇ. خاتالىقنىڭ قەيەردە ۋە نېمە ئۈچۈن يۈز بەرگەنلىكىنى ئاسانلا پەرقلەندۈرەلەيسىز.

خالاس. ھازىر ئۆزىڭىزنىڭ قوشۇمچە ھۆججىتىنى قۇردىڭىز ، ئۇنى Excel غا قوشتىڭىز ، ئۇنىڭدا UDF نى ئىشلىتەلەيسىز. ئەگەر سىز تېخىمۇ كۆپ UDF نى ئىشلەتمەكچى بولسىڭىز ، كودنى VBA تەھرىرلىگۈچتىكى قىستۇرما مودۇلغا يېزىپ ساقلىۋېلىڭ.

بۈگۈن ئۈچۈن شۇنداق. خاس ئىقتىدارلارنى يېشىشنىڭ ئوخشىمىغان ئۇسۇللىرىنى سۆزلەپ ئۆتتۇق ۋە ئۇلارنى خىزمەت دەپتىرىڭىزدە ئىشلىتىشنى ئۆگەندۇق. بۇ كۆرسەتمىلەرنى پايدىلىق دەپ بىلىشىڭىزنى ئۈمىد قىلىمىز. سوئالىڭىز بولسا ، بۇ ماقالىگە باھا يېزىڭ.

مايكول بروۋن مەخسۇس تېخنىكا ھەۋەسكارى بولۇپ ، يۇمشاق دېتال قوراللىرى ئارقىلىق مۇرەككەپ جەريانلارنى ئاددىيلاشتۇرىدۇ. تېخنىكا ساھەسىدە ئون نەچچە يىللىق تەجرىبىسى بار ، ئۇ Microsoft Excel ۋە Outlook ، شۇنداقلا Google Sheets ۋە Docs قاتارلىق جەھەتلەردە ئۆزىنىڭ ماھارىتىنى ئۆستۈردى. مايكىلنىڭ بىلوگى ئۆزىنىڭ بىلىمى ۋە تەجرىبىسىنى باشقىلار بىلەن ئورتاقلىشىشقا بېغىشلانغان بولۇپ ، ئىشلەپچىقىرىش ۋە ئۈنۈمنى ئاشۇرۇش ئۈچۈن ئاسان ئەگىشىدىغان ئۇسۇل ۋە دەرسلىكلەر بىلەن تەمىنلەيدۇ. مەيلى تەجرىبىلىك كەسپىي خادىم ياكى يېڭى ئۆگەنگۈچى بولۇڭ ، مايكولنىڭ بىلوگى بۇ مۇھىم يۇمشاق دېتال قوراللىرىدىن ئۈنۈملۈك پايدىلىنىش ئۈچۈن قىممەتلىك چۈشەنچە ۋە ئەمەلىي مەسلىھەت بىلەن تەمىنلەيدۇ.