Funktsioonide CALL ja REGISTER kasutamine

Rakenduskoht
Microsoft 365 rakendus Excel Maci jaoks ette nähtud Microsoft 365 rakendus Excel Excel 2024 Excel 2024 for Mac Excel 2021 Excel 2021 for Mac Excel 2019 Excel 2016 Excel for iPad Excel for iPhone Excel Androidi tahvelarvutite jaoks Excel Androidi telefonide jaoks

NB!

Ettevaatust! Registri vale redigeerimine võib teie operatsioonisüsteemi tõsiselt kahjustada, nõudes selle uuesti installimist. Microsoft ei taga, et registri valest redigeerimisest tulenevaid probleeme on võimalik lahendada. Enne registri redigeerimist varundage kõik väärtuslikud andmed. Värskeima teabe arvuti registri kasutamise ja kaitsmise kohta leiate Microsoft Windowsi spikrist.

Selles artiklis kirjeldatakse Microsoft Exceli funktsioonide CALL, REGISTER ja REGISTER.ID valemisüntaksit ja kasutamist.

Märkus.

Funktsioonid CALL ja REGISTER pole Exceli veebirakendus saadaval.

Selle artikli teemad

Kirjeldus

Järgmises artiklis kirjeldatakse funktsioonide CALL, REGISTER ja REGISTER.ID kasutatud argumentide ja tagastusväärtuse andmetüüpe. Argumendid ja tagastusväärtused erinevad pisut olenevalt teie töökeskkonnast ja need erinevused on ära toodud andmetüübi tabelis.

Lehe algusesse

Andmetüübid

Funktsioonides CALL, REGISTER ja REGISTER.ID määrab argument teksti_tüüp tagastusväärtuse andmetüübi ja DLL-funktsioonide või koodiressursside kõigi argumentide andmetüübid. Argumendi teksti_tüüp esimene märk määrab tagastusväärtuse andmetüübi. Ülejäänud märgid osutavad kõigi argumentide andmetüüpidele. Näiteks DLL-funktsioon, mis tagastab ujukomaarvu ja tunnistab argumentidena täisarvu ja ujukomaarvu, nõuab, et argumendiks teksti_tüüp oleks "BIB".

Järgnev tabel sisaldab Microsoft Exceli poolt tunnustatud andmetüüpide koodide täielikku loendit, iga andmetüübi kirjeldust, argumendi või tagastusväärtuse edastusviisi ning andmetüübi tüüpdeklaratsiooni C-programmeerimiskeeles.

Kood Kirjeldus Edastatakse C-deklaratsioon
A Loogika
(FALSE = 0), TRUE = 1)
väärtus short int
B IEEE 8-baidine ujukomaarv Value (Väärtus)
(Windows)
viide (Macintosh)
double
(Windows)
double * (Macintosh)
C Tühja lõpuga string (stringi suurim pikkus = 255) viide char *
D Baitides arvestatud string (esimene bait sisaldab stringi pikkust, stringi suurim pikkus = 255 märki) viide Unsigned char *
E IEEE 8-baidine ujukomaarv viide double *
F Tühja lõpuga string (stringi suurim pikkus = 255 märki) viide (muutmine kohapeal) char *
G Baitides arvestatud string (esimene bait sisaldab stringi pikkust, stringi suurim pikkus = 255 märki) viide (muutmine kohapeal) unsigned char *
H Märgita 2-baidine täisarv väärtus unsigned short int
I Märgiga 2-baidine täisarv väärtus short int
J Märgiga 4-baidine täisarv väärtus long int
K Massiiv viide FP *
L Loogika
(FALSE = 0, TRUE = 1)
viide short int *
M Märgiga 2-baidine täisarv viide short int *
N Märgiga 4-baidine täisarv viide long int *
O Massiiv viide Edastatakse kolm argumenti.
unsigned short int *
unsigned short int *
topelt [ ]
P Microsoft Exceli OPER-andmestruktuur viide OPER *
R Microsoft Exceli XLOPER-andmestruktuur viide XLOPER *

Lehe algusesse

Kommentaarid

  • C-keele deklaratsioonid põhinevad eeldusel, et kompilaatori vaikeväärtusteks on 8-baidised kahekordsed arvud, 2-baidised lühikesed täisarvud ja 4-baidised pikad täisarvud.
  • Microsoft Windowsi programmeerimiskeskkonnas on kõik viidad kaugviidad. Näiteks tuleb Microsoft Windowsis deklareerida D-andmetüübi kood kujul unsigned char far *.
  • Kõiki DLL-teekide ja koodiressursside funktsioone nimetatakse Pascali kutsereeglistiku järgi. Enamik C-kompilaatoreid võimaldavad kasutada Pascali kutsumistava, lisades funktsiooni deklaratsioonile Pascali märksõna, nagu on näidatud järgmises näites. pascal void main (rows,columns,a)
  • Kui funktsioon kasutab tagastusväärtuse jaoks andmetüüpi läbiviidav andmetüüp, saate tagastusväärtusena edastada nullkursori. Microsoft Excel tõlgendab nullkursorit #NUM! #NUM!.

Lehe algusse

Lisateave andmetüüpide kohta

See lõik sisaldab üksikasjalikku teavet F-, G-, K-, O-, P- ja R-andmetüüpide kohta ja muud teavet argumendi teksti_tüüp kohta.

F- ja G-andmetüübid

F- ja G-andmetüüpide puhul võib funktsioon teisendada Microsoft Exceli määratud stringipuhvri. Kui tagastusväärtuse tüübikood on F või G, ignoreerib Microsoft Excel funktsiooni tagastusväärtust. Selle asemel leiab Microsoft Excel funktsiooni argumentide loendist esimese vastava andmetüübi (F või G) ja võtab siis tagastusväärtusena määratud stringipuhvri praeguse sisu. Microsoft Excel määrab argumendile 256 baiti, nii võib funktsioon tagastada pikema stringi kui vastuvõetud string.

Lehe algusesse

K-andmetüüp

K-andmetüüp kasutab viita muutuva suurusega FP-struktuurile. See struktuur tuleb määratleda DLL-teegis või koodiressursis järgnevalt:

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

Deklaratsioon double array[1] eraldab salvestusruumi ainult ühe elemendiga massiivile. Tegeliku massiivi elementide arv võrdub ridade arvu ja veergude arvu korrutisega.

Lehe algusesse

O-andmetüüp

O-andmetüüpi saab kasutada ainult argumendina, mitte tagastusväärtusena. See edastab kolme üksust: viita massiivi ridade arvule, viita massiivi veergude arvule ja viita ujukomaarvude kahemõõtmelisele massiivile.

Väärtuse tagastamise asemel võib funktsioon muuta O-andmetüübi poolt edastatud massiivi. Selleks saate argumendina type_text kasutada ">O". Lisateabe saamiseks vt allpool osa "Muutmine kohapeal – tühistatud funktsioonid".

O-andmetüüp loodi otseühilduvuse saavutamiseks Fortrani DLL-teekidega, mis edastavad argumente viitena.

Lehe algusesse

P-andmetüüp

P-andmetüüp on viit OPER-struktuurile. OPER-struktuur sisaldab 8 baiti andmeid, millele järgneb 2-baidine andmetüüpi määrav identifikaator. P-andmetüübi puhul võib DLL-funktsioon või koodiressurss võtta ja tagastada suvalist Microsoft Exceli andmetüüpi.

OPER-struktuuri määratletakse järgnevalt:

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;

Tüübiväli sisaldab ühte nendest väärtustest.

Tippige arvuti otsinguväljale Kirjeldus Kasutatav väärtuste väli
1 Arvuline num
2 String (esimene bait sisaldab stringi pikkust) str
4 Kahendmuutuja (loogika) bool
16 Viga: veaväärtused on:
0#NULL!
7#DIV/0!
15#VALUE!
23#REF!
29#NAME?
36#NUM!
42#N/A
err
64 Massiiv array
128 Puuduv argument
256 Tühi lahter

Viimast kahte väärtust saab kasutada ainult argumentidena, mitte tagastusväärtustena. Puuduva argumendi väärtus (128) edastatakse, kui kutsuja jätab argumendi ära. Tühja lahtri väärtus (256) edastatakse, kui kutsuja edastab viite tühjale lahtrile.

Lehe algusesse

R-andmetüüp – Microsoft Exceli funktsioonide kutsumine DLL-teekidest

R-andmetüüp on viit XLOPER-struktuurile, mis on OPER-struktuuri laiendatud versioon. Microsoft Exceli versioonis 4.0 ja hilisemates versioonides võite kasutada R-andmetüüpi DLL-teekide ja koodiressursside kirjutamiseks, mis kutsuvad Microsoft Exceli funktsioone. XLOPER-struktuuri puhul võib DLL-funktsioon lisaks andmete edastamisele edastada leheviiteid ja teostada voogude juhtimist. R-andmetüübi ja Microsoft Exceli rakendusliidese (API-liidese) täielik kirjeldamine jääb selle teema ulatusest välja. Käsiraamat Microsoft Office XP Developer's Guide sisaldab üksikasjalikku teavet R-andmetüübi, Microsoft Exceli API-liidese ja paljude teiste Microsoft Exceli tehniliste aspektide kohta.

Lehe algusesse

Hävivad funktsioonid ja ümberarvutus

Microsoft Excel arvutab tavaliselt DLL-funktsiooni või koodiressurssi ainult siis, kui see on sisestatud lahtrisse, kui muutub üks selle eelkäijatest või kui lahtrit arvutatakse makro toimimise ajal. Võite muuta töölehel DLL-funktsiooni või koodiressursi hävivaks, mis tähendab, et see arvutab ümber iga kord, kui arvutatakse ümber töölehte. Funktsiooni muutmiseks hävivaks lisage argumendi teksti_tüüp viimase märgina hüüumärgi (!).

Näiteks programmis Microsoft Excel for Windows arvutab järgmine töölehe valem ümber iga kord, kui arvutatakse ümber töölehte:

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

Lehe algusesse

Muutmine kohapeal – tühjad funktsioonid

Võite kasutada tagastustüübi koodina argumendis teksti_tüüp ainsat märki n, kus n on arv vahemikus 1-9. See annab Microsoft Excelile käsu väärtuse tagastamise asemel muuta muutujat asukohas, kuhu osutab argument number n argumendis teksti_tüüp. Seda nimetatakse ka muutmiseks kohapeal. Argument number n peab kuuluma andmetüüpi edastatakse-viitena (C, D, E, F, G, K, L, M, N, O, P või R). DLL-funktsioon või koodiressurss tuleb samuti deklareerida void võtmesõnaga C-keeles või procedure võtmesõnaga Pascalis.

Näiteks võib DLL-funktsioon, mis võtab argumentidena tühja lõpuga stringi ja kaks viita täisarvudele, muuta stringi kohapeal. Kasutage argumendina teksti_tüüp stringi "1FMM" ja tühistage funktsioon.

Versioonist Microsoft Excel 4.0 varasemates versioonides kasutati > märki esimese argumendi muutmiseks kohapeal; muid argumente peale esimese ei saanud muuta. > Märk on võrdväärne märgiga n = 1 Microsoft Exceli versioonis 4.0 ja uuemates versioonides.

Lehe algusse