Excel UDF ma shaqeynayo: dhibaatooyinka iyo xalalka

  • La Wadaag Tan
Michael Brown

Shaxda tusmada

Maqaalkan, waxaanu ku eegi doonaa arrimaha aad la kulmi karto markaad isticmaalayso shaqooyinka gaarka ah ee buugaagtaada shaqo. Waxaan isku dayi doonaa inaan ku tuso waxa keenaya iyo sida ugu fudud ee loo xalin karo.

Waa kan waxa aan ka hadli doono:

    >> function custom waa, sida loo abuuro oo loo isticmaalo. Haddii aad dareento inaad u baahan tahay inaad hore u soo kiciso aqoonta aasaasiga ah ee UDFs, joojiso oo fiiri maqaalkeygii hore.

    Waa maxay sababta Excel UDF aysan dib u xisaabin karin? Buuggaaga shaqada, Excel dib uma xisaabin doono qaacido kasta oo aad halkaas ku haysato. Waxay cusboonaysiin doontaa natiijooyinka qaababkaas ku xidhan unugyada la beddelay oo keliya. Laakiin tani waxay khusaysaa hawlaha caadiga ah ee Excel. Sida kuwa caadiga ah, Excel ma ansixin karo code-ka VBA oo ma aqoonsan karo unugyo kale oo sidoo kale saameyn kara natiijada shaqada gaarka ah. Sidaa darteed, qaacidadaada gaarka ah ma bedeli karto markaad wax ka bedesho buuga shaqada. >Si aad u xalliso arinta, waxaad u baahan doontaa oo kaliya inaad isticmaasho Codsiga.Volatile weedha. Fiiri cutubka xiga si aad u barato tilmaanta tallaabo-tallaabo ah ee ku saabsan sida loo dabaqo.

    Volatile vs non-volatile custom custom services

    Sida caadiga ah, hawlaha gaarka ah ee Excel ma aha kuwo kacsan. Tani waxay ka dhigan tahay in UDF dib loo xisaabiyo oo keliya haddii qiimaha mid ka mid ah unugyada ay tilmaamayso isbeddelo. Laakiin haddii qaabka unugyada, magacaxaashida shaqada, magaca faylka ayaa beddela, markaa wax isbeddel ahi kuma dhici doono UDF.

    Aan ka beddelno erayada una beddelno tusaalayaal. Tusaale ahaan, waxaad u baahan tahay inaad ku qorto magaca buuggaaga shaqada unug. Si tan loo sameeyo, waxaad abuurtaa hawl gaar ah:

    >Shaqada Magaca Buugga Shaqada () Sida String WorkbookName = Buug-hawleedkan. Magaca Dhammaadka Shaqada

    Hadda qiyaas kiiskan soo socda. Waxaad ku qortay unugga gaarka ah =WorkbookName() oo waxaad heshay magaca faylka halkaas. In muddo ah, waxaad go'aansatey in aad magaca ka bedesho faylka oo aad ku kaydisay magac kale. Laakiin waxaad eegtaa qiimaha unugga oo waxaad arkaysaa in aanu is beddelin. Weli waxaa jira magac fayl hore oo aan hadda sax ahayn.

    Maadaama aysan jirin wax dood ah oo ku jira shaqadan, shaqada dib looma xisaabin (xitaa haddii aad bedesho magaca buugga shaqada, xir, ka dibna dib u fur it)

    Ogow. Si aad dib u xisaabiso dhammaan hawlaha faylkaaga, waxaad isticmaali kartaa Ctrl + Alt + F9.

    Ma jirtaa waddo ka fudud? Si aad u samayso qaacidada dib u xisaabinta mar kasta oo xaashida shaqadu isbedesho, waxaad u baahan tahay khad kood ah oo dheeri ah. Ku dheji koodka soo socda bilowga shaqadaada:

    > Codsiga WorkbookName() Sida Xarig Codsi ahdib ayaa loo xisaabiyay ama wax isbedel ah ayaa ku dhacay buuga shaqada. Isla markaad badasho magaca faylka, waxaad arki doontaa cusboonaysiinta isla markiiba. > Xusuusnow. Fadlan maskaxda ku hay in hawlo badan oo isbedbeddelaya ay hoos u dhigi karaan Excel-gaaga. Ka dib oo dhan, waxaa jira hawlo badan oo caado ah kuwaas oo sameeya xisaabin adag oo ku shaqeeya xog badan oo joogto ah.

    Sidaa darteed, waxaan ku talinayaa in la isticmaalo isbeddelka meesha looga baahan yahay oo keliya.

    Waa maxay sababta aan loo heli karin hawlaha gaarka ah

    >Markaad geliso xarfaha ugu horreeya ee magaca shaqada caadada, way soo baxaysaa. Liiska hoos-u-dhaca ee ku xiga unugga wax-gelinta, si la mid ah hawlaha caadiga ah ee Excel.

    Si kastaba ha ahaatee, tani had iyo jeer ma dhacdo. Qaladaadkee ayaa sababi kara xaaladdan?

    Haddii aad haysato Excel 2003-2007, markaa UDF waligeed kama soo muuqan liiska hoos u dhaca. Halkaa waxaad ku arki kartaa oo kaliya shaqooyinka caadiga ah

    > Laakin xitaa haddii aad isticmaalayso nooc cusub oo Excel ah, waxaa jira qalad kale oo aad si lama filaan ah u samayn karto. module VBA caadiga ah loo yaqaan Modules. Markaad ku darto module cusub si aad u qorto code-ka shaqada, waxaa si toos ah loo abuurayaa galka Modules kaas oo dhammaan qaybaha lagu qoro

    >

    Laakiin mararka qaarkood waxaa dhacda in module cusub uusan ahayn. abuurista. Shaashada soo socota waxaad ku arki kartaa in code-ka shaqada gaarka ahi uu ku jiro moduleka "Microsoft Excel Objects" oo ay la socdaanBuug-hawleedkan.

    Ujeedku waa inaadan meel dhigi karin hawl gaar ah meesha koodka xaashida shaqada ama buugga shaqada. Xaaladdan oo kale, shaqadu ma shaqeyn doonto. Waxaa intaa dheer, kuma soo muuqan doonto liiska hoos u dhaca ee shaqooyinka. Sidaa darteed, koodka had iyo jeer waa inuu ku jiraa galka Modules .

    Qoraalka caawinta shaqada gaarka ah ee Excel lama soo bandhigin

    Dhibaatada kale ayaa dhici karta waa tilmaanta aad aragto marka aad dhejiso shaqo caado ah. Haddii aad isticmaasho shaqo caadi ah, waxaad had iyo jeer arki doontaa aaladda shaqada iyo doodaheeda. Laakiin ka waran UDFs?

    Haddii aad leedahay hawlo badan oo caado ah, aad ayay kuugu adkaan doontaa inaad xasuusato xisaabinta mid kasta oo iyaga ka mid ahi sameeyo. Way adkaan doontaa in la xasuusto doodaha la isticmaalayo. Waxaan u maleynayaa inay fiicnaan doonto in la helo sharaxaad ku saabsan hawlahaaga caadada u ah xasuusin ahaan.

    Tani, waxaan soo jeedin lahaa isticmaalka Codsiga.MacroOptions habka. Waxay kaa caawin doontaa inaad muujiso sharraxaadda kaliya maahan shaqada laakiin sidoo kale mid kasta oo ka mid ah doodaheeda daaqada Wizard Function. Waxaad arkaysaa daaqadan markaad riixdo badhanka Fx ee ku yaala baarka caanaha.

    Aan aragno sida loogu daro tilmaamo noocaas ah UDFs Maqaalkii hore waxaan eegnay shaqada gaarka ah ee GetMaxBetween. Waxay ka helaysaa tirada ugu badan ee xadka la cayimay waxayna qaadataa saddex doodood: kala duwan oo qiimayaal tiro ah, iyo ugu badnaan iyo qiimaha ugu yarraadi.

    Hadda waxaanu ku dari doonaa sharraxaadda shaqadan gaarka ah. Si tan loo sameeyo, samee oo socodsii amarka Application.MacroOptions . Shaqada GetMaxBetween , waxaad socodsiin kartaa amarkan soo socda:

    >Sub RegisterUDF () Dim strFuncName As String 'magaca shaqada aad rabto inaad iska diiwaangeliso Dim strDescr As String' sharaxaadda shaqada lafteedu Dim strArgs () Sida Xarigga 'sharaxaadda doodaha shaqada' Diiwaangeli GetMax Inta u dhaxaysa shaqada ReDim strArgs (1 ilaa 3) 'Tirada doodaha shaqadaada strFuncName = "GetMaxBetween" strDescr = "Lambarka ugu sarreeya ee cabbirka la cayimay" strArgs (1) = "Range of numbers" strArgs (2) = "Xuduudka dhexda hoose" strArgs (3) = "Xuduudka barafka sare" Application.MacroOptions Macro: = strFuncName, _ Description: = strDescr, _ ArgumentDescriptions: = Strgs, _ Category: = " Howlahayga gaarka ah " Dhammaad Sub

    ama

    Sub RegisterUDF () Application.MacroOptions Macro: = "GetMaxBetween" , _ Description: = "Lambarka ugu badan ee inta la cayimay" , _ Qaybta: = "My Hawlaha gaarka ah" , _ ArgumentDescriptions: = Array (_ " Kala duwanaanshaha qiimayaasha tirooyinka" , _ "Barafka hoose der" , _ "Xuduudka dhexda sare" strDescr - sharraxaadda shaqada. Doorsoomayaasha strArgs waxay ka kooban yihiin tilmaamo dood kasta

    Waxaa laga yaabaa inaad la yaabto waa maxay doodda afraadCodsiga.MacroOptions. Dooddan ikhtiyaariga ah waxaa lagu magacaabaa Qeybta waxayna muujineysaa fasalka howlaha Excel in caadadayada GetMaxBetween () shaqada la gelin doono. Waxaad u magacaabi kartaa mid ka mid ah qaybaha jira: Xisaab & ; Trig, Statistical, Logical, iwm. Waxaad u cayimi kartaa magaca qaybta cusub taas oo aad ku dhejin doonto hawlaha aad abuurtay. Haddii aadan isticmaalin doodda Qaybta, markaa shaqada gaarka ah ayaa si toos ah loogu dhejin doonaa qaybta "User Defined". 1>

    Dabadeed dhagsii badhanka "Run". Amarku wuxuu fulin doonaa dhammaan goobaha loo isticmaalo badhanka Fx oo wata GetMaxBetween() function

    Haddii aad isku daydo inaad hawl geliso unugga adoo isticmaalaya Geli Function , waxaad arki doontaa inuu jiro GetMaxBetween shaqadaadu waxay ku jirtaa qaybta "My Custom Functions":

    > >

    Adiga waxay si fudud u bilaabi kartaa inaad ku qorto magaca shaqada unugga waxaadna arki doontaa shaqadaada gaarka ah liiska hoos u dhaca ee hawlaha aad ka xulan karto.

    > >

    kadib wac Function Wizard oo wata badhanka Fx.

    Talo. Waxa kale oo aad isticmaali kartaa furaha isku dhafka CRTL + A si aad u furto Wizard Function.

    >

    Daaqadda Function Wizard waxaad ku arki doontaa sharraxaadda shaqadaada, iyo sidoo kale tilmaam doodda koowaad. Haddi aad dul saartid cursorkaagaDoodda labaad ama saddexaad, waxaad sidoo kale arki doontaa tilmaamo iyaga.

    Haddii aad rabto inaad bedesho qoraalka tilmaamahan, beddel qiyamka strDescr iyo strArgs doorsoomayaasha ku jira RegisterUDF () code. Kadibna mar kale orod RegisterUDF () amarka

    Haddii aad rabto in aad tirtirto dhammaan dejintii la sameeyay oo aad nadiifiso sharraxaadda shaqada, socodsii koodkan:

    Sub UnregisterUDF () Codsiga Geli magaca shaqada ka dibna riix Ctrl + Shift + A :

    =GetMaxBetween( + Ctrl + Shift + A

    Waxaad arki doontaa liiska dhammaan doodaha shaqada: 0>

    Nasiib darro, halkan kuma arki doontid sharraxaadda shaqada iyo doodaheeda. Laakiin haddii magacyada dooda ay yihiin kuwo macluumaad badan leh, si ay iyaguna waxtar u yeeshaan. Weli, way ka fiican tahay waxba :)

    Waxay qaadan doontaa shaqo yar oo dheeraad ah si loo abuuro caqli-gal UDF-yada kuwaas oo u shaqeeya sida hawlaha caadiga ah ee Excel. Nasiib darro, Microsoft ma bixiso wax ikhtiyaar ah. Xalka kaliya ee hadda jira waa Excel-DNA IntelliSense kordhinta. Waxaad ka heli kartaa macluumaad dheeraad ah mareegta horumariyaha.

    Waxaan rajeyneynaa, tilmaamahan ayaa kaa caawin doona inaad xalliso dhibaatooyinka marka shaqadaada gaarka ah aysan shaqeynin ama aysan shaqeynin.u shaqee sida aad rabto. Haddii si kastaba ha ahaatee, UDF-taadu ay wali ku guuldareysato inay shaqeyso, fadlan si sax ah ugu sharax arintaada qaybta faallooyinka. Waxaan isku dayi doonaa inaan ogaano oo aan kuu raadino xalka;)

    >

Michael Brown waa xamaasad tignoolajiyada u heellan oo xiise u leh fududaynta hababka adag iyadoo la adeegsanayo aaladaha software. In ka badan toban sano oo waayo-aragnimo ah oo ku saabsan warshadaha teknoolajiyada, wuxuu ku horumariyay xirfadihiisa Microsoft Excel iyo Outlook, iyo sidoo kale Google Sheets iyo Docs. Blog-ga Michael wuxuu u heellan yahay inuu la wadaago aqoontiisa iyo khibradiisa dadka kale, isagoo siinaya tabo-fudud oo la raaco iyo casharro lagu horumarinayo wax soo saarka iyo hufnaanta. Haddii aad tahay xirfadle khibrad leh ama bilow ah, Michael's blog wuxuu bixiyaa fikrado qiimo leh iyo talooyin wax ku ool ah si aad uga faa'iidaysato qalabkan software-ka ah ee muhiimka ah.