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.
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 * |
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ę.
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.
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.
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ą.
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į.
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.
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!")
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.