Funkcijų CALL ir REGISTER naudojimas

Taikoma
„Excel“, skirta „Microsoft 365“ „Excel“, skirta „Microsoft 365“, skirtam „Mac“ „Excel 2024“ „Excel 2024“, skirta „Mac“ Excel 2021 „Excel 2021“ skirta „Mac“ Excel 2019 Excel 2016 „Excel“, skirta „iPad“ „Excel“, skirta „iPhone“ „Excel“, skirta „Android“ planšetiniams kompiuteriams „Excel“, skirta „Android“ telefonams

Svarbu

Atsargiai Neteisingai koreguodami registrą, galite labai pakenkti operacinei sistemai ir ją reikės įdiegti iš naujo. "„Microsoft“" negali garantuoti, kad dėk netinkamo registro koregavimo kilusias problemas galima išspręsti. Prieš redaguodami registrą sukurkite atsarginę visų vertingų duomenų kopiją. Norėdami sužinoti naujausios informacijos apie kompiuterio registro naudojimą ir apsaugą, žr. "„Microsoft“ Windows" žinyną.

Šiame straipsnyje aprašoma formulės sintaksė ir CALL, REGISTER ir REGISTER.ID naudojimas programoje „Microsoft Excel“.

Pastaba

Funkcijos CALL ir REGISTER negalimos internetinėje Excel„Excel“.

Šiame straipsnyje:

Aprašas

Toliau aprašyti argumentai ir grąžinamų reikšmių duomenų tipai, naudojami funkcijų CALL, REGISTER ir REGISTER.ID. Argumentai ir grąžinamos reikšmės šiek tiek skiriasi priklausomai nuo operacinės aplinkos ir šie skirtumai yra nurodyti duomenų tipų lentelėje.

Puslapio viršus

Duomenų tipai

Funkcijose CALL, REGISTER ir REGISTER.ID tipo_teksto argumentas nurodo grąžinamos reikšmės duomenų tipą ir visų DLL funkcijai ar kodų ištekliams reikalingų argumentų duomenų tipus. Pirmasis tipo_teksto simbolis nurodo grąžinamos reikšmės duomenų tipą. Likusieji simboliai nurodo visų argumentų duomenų tipus. Pvz., DLL funkcijai, grąžinančiai slankiojo kablelio skaičių ir kaip argumentus naudojančiai sveikąjį skaičių ir slankiojo kablelio skaičių, reikėtų BIB tipo_teksto argumento.

Šioje lentelėje pateiktas išsamus Microsoft Excel atpažįstamų duomenų tipų kodų sąrašas, kiekvieno duomenų tipo aprašas, argumento ar grąžinamos vertės perdavimo būdas ir tipinis duomenų tipo deklaravimas C programavimo kalboje.

Kodas Aprašymas Perduoti su C deklaracija
A Loginės
(FALSE = 0), TRUE = 1)
Reikšmė trumpas sveikasis skaičius
B IEEE 8 baitų slankiojo kablelio skaičius Reikšmė
("Windows")
Nuoroda (Macintosh)
dvigubas
("Windows")
dvigubai * (Macintosh)
C Nuliu besibaigianti eilutė (maksimalus eilutės ilgis = 255) Nuoroda simb. *
D Baitus skaičiuojanti eilutė (pirmajame baite yra eilutės ilgis, maksimalus eilutės ilgis = 255 simboliai) Nuoroda Nepasirašytas simb. *
E IEEE 8 baitų slankiojo kablelio skaičius Nuoroda dvigubai *
F Nuliu besibaigianti eilutė (maksimalus eilutės ilgis = 255 simboliai) Nuoroda (modifikuoti vietoje) simb. *
G Baitus skaičiuojanti eilutė (pirmajame baite yra eilutės ilgis, maksimalus eilutės ilgis = 255 simboliai) Nuoroda (modifikuoti vietoje) nepasirašytas simb. *
H Nepasirašytas 2 baitų sveikasis skaičius Reikšmė Nepasirašytas trumpas sveikasis skaičius
I Pasirašytas 2 baitų sveikasis skaičius Reikšmė trumpas sveikasis skaičius
J Pasirašytas 4 baitų sveikasis skaičius Reikšmė ilgas sveikasis skaičius
K Masyvas Nuoroda FP *
L Loginės
(FALSE = 0, TRUE = 1)
Nuoroda trumpas sveikasis skaičius *
M Pasirašytas 2 baitų sveikasis skaičius Nuoroda trumpas sveikasis skaičius *
N Pasirašytas 4 baitų sveikasis skaičius Nuoroda ilgas sveikasis skaičius *
O Masyvas Nuoroda Perduodami trys argumentai:
Nepasirašytas trumpas sveikasis skaičius *
Nepasirašytas trumpas sveikasis skaičius *
dvigubas [ ]
P Microsoft Excel OPER duomenų struktūra Nuoroda OPER *
R Microsoft Excel XLOPER duomenų struktūra Nuoroda XLOPER *

Puslapio viršus

Pastabos

  • C kalbos deklaracijos yra pagrįstos prielaida, kad kompiliatorius pagal numatytąją reikšmę 8 baitus skiria dvigubiems simboliams, 2 baitus – trumpiems sveikiesiems skaičiams ir 4 baitus – ilgiems sveikiesiems skaičiams.
  • „Microsoft“ Windows programinėje aplinkoje visi žymikliai yra kaip far loginės rodyklės. Pvz., „Microsoft“ Windows sistemoje D duomenų tipo kodą turite deklaruoti kaip unsigned char far *.
  • Visos funkcijos DLL funkcijose ir kodo ištekliuose yra iškviečiamos naudojant Pascal iškvietimo susitarimą. Dauguma C kompiliatorių leidžia jums naudoti Paskalio iškvietimo susitarimą įtraukiant į funkcijos deklaraciją Paskalio raktažodį, kaip parodyta šiame pavyzdyje: pascal void main (rows,columns,a)
  • Jei funkcija grąžindama reikšmę naudoja perduodamų pagal nuorodą duomenų tipą, kaip grąžinamąją reikšmę galite perduoti nulinę loginę rodyklę. Microsoft Excel interpretuos nulinę žymiklį kaip #NUM! klaidos reikšmę.

Puslapio viršus

Papildoma duomenų tipų informacija

Šiame skyriuje yra išsami informacija apie duomenų tipus F, G, K, O, P ir R bei kita informacija apie argumentą tipo_tekstas.

Duomenų tipai F ir G

Pagal duomenų tipus F ir G funkcija gali modifikuoti tarpinę eilutę, priskirtą programos Microsoft Excel. Jei grąžinamosios reikšmės tipo kodas yra F arba G, Microsoft Excel nepaiso reikšmės, kurią grąžina funkcija. Tuomet Microsoft Excel ieško funkcijų argumentų sąrašo pirmam atitinkančiam duomenų tipui (F arba G) ir po to paima dabartinę priskirtą tarpinę eilutę kaip grąžinamąją reikšmę. Microsoft Excel argumentui paskiria 256 baitus, todėl funkcija gali grąžinti didesnę eilutę, nei gavo.

Puslapio viršus

Duomenų tipas K

Duomenų tipas K naudoja loginę rodyklę į kintamojo dydžio FP struktūrą. Šią struktūrą turite apibrėžti DLL funkcijoje ar kodo ištekliuose taip, kaip parodyta toliau:

typedef struct _FP
{
    unsigned short int rows;
    unsigned short int columns;
    double array[1];        /* Actually, array[rows][columns] */
} FP;

Deklaracijoje double array[1] saugykla paskirstoma tik vieno elemento masyvui. Elementų skaičius tikrajame masyve yra lygus eilučių skaičiui, padaugintam iš stulpelių skaičiaus.

Puslapio viršus

Duomenų tipas O

Duomenų tipas O gali būti naudojamas tik kaip argumentas, bet ne kaip grąžinamoji reikšmė. Jis perduoda tris elementus: loginę rodyklę į eilučių skaičių masyve, loginę rodyklę į stulpelių skaičių masyve ir loginę rodyklę į dviejų dimensijų masyvą iš skaičių su slankiuoju kableliu.

Vietoje reikšmės grąžinimo funkcija gali modifikuoti masyvą, perduotą duomenų tipo O. Norėdami tai padaryti, kaip type_text argumentą galite naudoti ">O". Jei reikia daugiau informacijos, žr. temą "Modifikavimas vietoje – funkcijos, deklaruotos kaip negaliojančios" toliau.

Duomenų tipas O buvo sukurtas tiesioginiam suderinamumui su Fortran DLL funkcijomis, kurios argumentus perduoda pagal nuorodą.

Puslapio viršus

Duomenų tipas P

Duomenų tipas P yra loginė rodyklė į OPER struktūrą. OPER struktūra turi 8 baitus duomenų, po kurių eina 2 baitų identifikatorius, nurodantis duomenų tipą. Naudodama duomenų tipą P, DLL funkcija ar kodo ištekliai gali gauti ir grąžinti bet kurį Microsoft Excel duomenų tipą.

OPER struktūra yra apibrėžiama taip:

typedef struct _oper

{
    union
    {
        double num;
        unsigned char *str;
        unsigned short int bool;
        unsigned short int err;
        struct
        {
            struct _oper *lparray;
            unsigned short int rows;
            unsigned short int columns;
        } array;
    } val;
    unsigned short int type;
} OPER;

Tipo lauke yra viena iš šių reikšmių.

Tipas Aprašymas Naudojamas reikšmės (val) laukas
1 Skaitinis num
2 Eilutė (pirmajame baite yra eilutės ilgis) str
4 Bulio loginė reikšmė bool
16 Klaida: galimos klaidos reikšmės:
0#NULL!
7#DIV/0!
15#Value!
23#REF!
29#NAME?
36#NUM!
42#N/A
err
64 Masyvas masyvas
128 Nenurodytas argumentas
256 Tuščias langelis

Paskutinės dvi reikšmės gali būti naudojamos tik kaip argumentai, o ne grąžinamosios reikšmės. Nenurodyto argumento reikšmė (128) yra perduodama tada, kai funkcijos kvietėjas nenurodo kurio nors argumento. Tuščio langelio reikšmė (256) yra perduodama, kai funkcijos kvietėjas perduoda nuorodą į tuščią langelį.

Puslapio viršus

Duomenų tipas R - iškviečia Microsoft Excel funkcijas iš DLL

Duomenų tipas R yra loginė rodyklė į XLOPER struktūrą, kuri yra išplėstinė OPER struktūros versija. Microsoft Excel 4.0 ir vėlesnėse versijose duomenų tipą R galite naudoti rašyti DLL funkcijoms ir kodų ištekliams, iškviečiantiems Microsoft Excel funkcijas. Naudodama XLOPER struktūrą, DLL funkcija gali perduoti ne tik duomenis, bet ir lapo nuorodas ir vykdyti srauto kontrolę. Išsamus duomenų tipo R ir Microsoft Excel taikomojo programavimo sąsajos (API) aprašymas yra kita tema ir todėl čia nepateiktas. Microsoft Office XP programuotojo vadove rasite išsamesnės informacijos apie duomenų tipą R, Microsoft Excel API ir kitus Microsoft Excel techninius aspektus.

Puslapio viršus

Kintamosios funkcijos ir perskaičiavimas

Programa Microsoft Excel dažniausiai DLL funkciją (ar kodo išteklius) skaičiuoja tik tada, kai ji yra įvedama į langelį, kai pasikeičia vienas iš jos pirminių narių arba kai langelis yra perskaičiuojamas vykdant makrokomandą. Darbalapyje galite nustatyti, kad DLL funkcija ar kodų ištekliai būtų kintami, t. y., jie būtų perskaičiuojami kaskart, kai perskaičiuojamas darbalapis. Jei funkciją norite nustatyti kaip kintamą, argumento tipo_tekstas pabaigoje pridėkite šauktuką (!) kaip paskutinį simbolį.

Pvz., programoje Microsoft Excel (Windows), tokia darbalapio formulė perskaičiuojama kas kartą, kai perskaičiuojamas darbalapis:

CALL("Kernel32","GetTickCount","J!")

Puslapio viršus

Modifikavimas vietoje – funkcijos deklaruotos kaip negaliojančios

Vieną skaitmenį n galite naudoti grąžinimo tipo kodui argumente tipo_tekstas, kai n yra skaitmuo nuo 1 iki 9. Jis nurodo programai Microsoft Excel ne grąžinti reikšmę, o modifikuoti kintamąjį vietoje, kurią tipo_tekste nurodo n-is argumentas. Tai ar yra vadinama modifikavimu vietoje. N-is argumentas turi būti perduodamo pagal nuorodą duomenų tipo (C, D, E, F, G, K, L, M, N, O, P arba R). DLL funkcija arba kodų ištekliai taip pat turi būti deklaruoti su negaliojimo raktažodžiu C kalba (arba procedūros raktažodžiu Paskalio kalba).

Pvz., DLL funkcija, kuri kaip argumentus gauna nuliu besibaigiančią eilutę ir dvi logines rodykles į sveikuosius skaičius, eilutę gali modifikuoti vietoje. Kaip argumentą tipo_tekstas naudokite 1FMM ir deklaruokite funkciją kaip negaliojančią.

Versijose, ankstesnėse už Microsoft Excel 4.0, simbolis buvo naudojamas > pirmajam argumentui modifikuoti, tose versijose nebuvo jokios galimybės modifikuoti ne pirmąjį, o kurį nors kitą argumentą. Simbolis > yra lygiavertis n = 1 programoje Microsoft Excel 4.0 ir vėlesnėse jos versijose.

Puslapio viršus