Vigtigt!: Advarsel! Hvis du redigerer noget forkert i registreringsdatabasen, kan det beskadige operativsystemet i en sådan grad, at du er nødt til at geninstallere det. Microsoft kan ikke garantere, at de problemer, der opstår som følge af forkert redigering af registreringsdatabasen, kan løses. Før du redigerer registreringsdatabasen, skal du sikkerhedskopiere værdifulde data. Se i Microsoft Windows Hjælp for at få de seneste oplysninger om, hvordan du bruger og beskytter registreringsdatabasen.
I denne artikel beskrives formelsyntaksen for og brugen af funktionerne KALD, REGISTRER og REGISTER.ID i Microsoft Excel.
Bemærk!: Funktionerne KALD og REGISTRER er ikke tilgængelige i Excel til internettet.
I denne artikel
Beskrivelse
Følgende beskriver det argument og de datatyper for returværdier, der bruges af funktionerne KALD, REGISTER og REGISTER.ID. Argumenter og returværdierne varierer en smule afhængigt af dit operativmiljø, og disse forskelle er anført i datatypetabellen.
Datatyper
I funktionerne KALD, REGISTRER og REGISTRER.ID angiver argumentet type returværdiens datatype samt datatypen for alle argumenterne i DLL-funktionen eller koderessourcen. Det første tegn i type_text angiver datatypen for returværdien. De resterende tegn angiver datatyperne for alle argumenterne. Eksempelvis kræver en DLL-funktion, der returnerer et flydende tal og tager et heltag og et fyldende tal som argumenter, "BIB" som argument for type_text.
Nedenstående tabel indeholder en fuldstændig liste over datatypekoder, der kan anvendes i Microsoft Excel, en beskrivelse af hver datatype, en angivelse af, hvordan argumentet eller returværdien overføres, samt en typisk erklæring til datatypen i programmeringssproget C.
Kode |
Beskrivelse |
Overføres af |
C-erklæring |
A |
Logisk (FALSK = 0, SAND = 1) |
Værdi |
short HELTAL |
B |
IEEE-tal med flydende komma (8 byte) |
Værdi (Windows)Reference (Macintosh) |
double (Windows)double * (Macintosh) |
C |
Nulafsluttet streng (maksimal længde = 255 tegn) |
Reference |
char * |
D |
Byte-talt streng (første byte indeholder strengens længde, maksimal længde = 255 tegn) |
Reference |
Unsigned char * |
E |
IEEE-tal med flydende komma (8 byte) |
Reference |
double * |
F |
Nulafsluttet streng (maksimal længde = 255 tegn) |
Reference (ret på position) |
char * |
G |
Byte-talt streng (første byte indeholder strengens længde, maksimal længde = 255 tegn) |
Reference (ret på position) |
unsigned char * |
H |
Heltal uden fortegn (2 byte) |
Værdi |
unsigned short HELTAL |
I |
Heltal med fortegn (2 byte) |
Værdi |
short HELTAL |
J |
Heltal med fortegn (4 byte) |
Værdi |
long HELTAL |
K |
Matrix |
Reference |
FP * |
L |
Logisk (FALSK = 0, SAND = 1) |
Reference |
short int * |
M |
Heltal med fortegn (2 byte) |
Reference |
short int * |
N |
Heltal med fortegn (4 byte) |
Reference |
long int * |
O |
Matrix |
Reference |
Der overføres tre argumenter: unsigned short int * unsigned short int * double [ ] |
P |
Microsoft Excel OPER-datastruktur |
Reference |
OPER * |
R |
Microsoft Excel XLOPER-datastruktur |
Reference |
XLOPER * |
Bemærkninger
-
C-erklæringerne er baseret på, at compilerens standard er 8 byte dobbelt, enkelte heltal på 2 byte og dobbelte heltal på 4 byte.
-
I Microsoft Windows-programmeringsmiljøet er alle henvisninger yderst henvisninger. Eksempelvis skal du angive koden D data type som unsigned char far * i Microsoft Windows.
-
Alle funktioner i DLL og koderessourcer kaldes ved hjælp af kaldestandarden i Pascal. I de fleste C-compilere kan du bruge Pascal-kaldestandarden ved at tilføje Pascal-nøgleordet i funktionserklæringen som vist nedenfor: pascal void main (rows,columns,a)
-
Hvis en funktion anvender en datatype, der overføres med reference, som returværdi, kan du overføre en null-markør som returværdien. Null-markøren fortolkes i Microsoft Excel som fejlværdien #NUM! .
Flere oplysninger om datatyper
Dette afsnit indeholder detaljerede oplysninger om datatyperne F, G, K, O, P og R samt oplysninger om argumentet type.
Datatyperne F og G
Med datatyperne F og G kan en funktion ændre en strengbuffer, der er tildelt af Microsoft Excel. Hvis typekoden for returværdien er F eller G, ignoreres den værdi, der returneres af funktionen. I stedet søges der i listen over funktionsargumenter efter den første tilsvarende datatype (F eller G), og det aktuelle indhold af den tildelte strengbuffer anvendes som returværdi. Der tildeles 256 byte til argumentet, så funktionen kan i nogle tilfælde returnere en streng, der er større end den streng, der blev modtaget.
Datatypen K
Datatypen K anvender en pointer i en variabel FP-struktur. Denne struktur skal defineres i DLL eller koderessourcen således:
typedef struct _FP
{ unsigned short int rows; unsigned short int columns; double array[1]; /* Actually, array[rows][columns] */ } FP;
Erklæringen double array[1] tildeler kun lagerplads til en matrix bestående af et enkelt element. Antallet af elementer i den faktiske matrix er lig med antallet af rækker ganget med antallet af kolonner.
Datatypen O
Datatypen O kan kun bruges som argument, ikke som returværdi. Der overføres tre elementer: en pointer til antallet af rækker i en matrix, en pointer til antallet af kolonner i en matrix og en pointer til en todimensional matrix, der indeholder tal med flydende komma.
I stedet for at returnere en værdi kan en funktion ændre en matrix, der overføres af datatypen O. Hvis du vil gøre dette, kan du bruge "> O" som typeargument. Hvis du vil have mere at vide, skal du se "Ændring på positionen –funktioner, der er erklæret ugyldige" nedenfor.
Datatypen O er oprettet med henblik på direkte kompatibilitet med Fortran DLL, der overfører argumenter ved brug af reference.
Datatypen P
Datatypen P er en pointer til en OPER-struktur. OPER-strukturen indeholder 8 byte data efterfulgt af en identifikator på 2 byte, der angiver datatypen. Med datatypen P kan en DLL-funktion eller koderessource tage eller returnere alle Microsoft Excel-datatyper.
OPER-strukturen defineres således:
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;
Feltet type indeholder en af følgende værdier:
Type |
Beskrivelse |
Værdifelt, der skal benyttes |
1 |
Numerisk |
num |
2 |
Streng (første byte indeholder strenglængden) |
str |
4 |
Boolesk (logisk) |
bool |
16 |
Fejl: fejlværdierne er: 0#NUL! 7#DIVISION/0! 15#VÆRDI! 23#REFERENCE! 29#NAVN? 36#NUM! 42#I/T |
err |
64 |
Matrix |
array |
128 |
Manglende argument |
|
256 |
Tom celle |
De sidste to værdier kan kun bruges som argumenter, ikke som returværdier. Værdien "Manglende argument" (128) overføres, når et argument er udeladt i kaldet. Værdien "Tom celle" (256) overføres, når der overføres en reference til en tom celle.
Datatypen R – kald af Microsoft Excel-funktioner fra DLL-filer
Datatypen R er en pointer til en XLOPER-struktur, der er en udvidet version af OPER-strukturen. I Microsoft Excel version 4.0 og senere kan datatypen R anvendes til at skrive DLL og koderessourcer, der kalder Microsoft Excel-funktioner. Ved brug af XLOPER-strukturen kan en DLL-funktion overføre arkreferencer og iværksætte flowstyring samt overføre data. Der gives ikke en fuldstændig beskrivelse af datatypen R og Microsoft Excel Application Programming Interface (API) her. Microsoft Office XP Developer's Guide indeholder detaljerede oplysninger om datatypen R, Microsoft Excel API og andre tekniske aspekter af Microsoft Excel.
Funktioner, der altid genberegnes, og genberegning
I Microsoft Excel beregnes en DLL-funktion (eller en koderessource) normalt kun, når funktionen eller koderessourcen angives i en celle, når en overordnet funktion eller koderessource ændres, eller når cellen beregnes under kørsel af en makro. I regneark kan du angive, at en DLL-funktion eller en koderessource skal genberegnes, hver gang regnearket genberegnes. Hvis du vil angive, at en funktion altid skal genberegnes, skal du tilføje et udråbstegn (!) som sidste tegn i argumentet type.
I Microsoft Excel til Windows genberegnes følgende regnearksformel, hver gang regnearket genberegnes:
KALD("Kernel32","FåAntalTick","J!")
Ændring på positionen – funktioner, der er erklæret ugyldige
Du kan anvende et enkelt ciffer n som returtypekode i argumentet type, hvor n er et tal fra 1 til 9. Dette angiver, at variablen på den position, der peges på af det n'te argument i type, skal ændres, og at der ikke skal returneres en værdi. Dette kaldes også for ændring på positionen. Det n'te argument skal være en overføringsreferencetype (C, D, E, F, G, K, L, M, N, O, P eller R). DLL-funktionen eller koderessourcen skal også erklæres med nøgleordet void i C-sproget (eller nøgleordet procedure i Pascal).
En DLL-funktion, der tager en nulafsluttet streng og to pointere til heltal som argumenter, kan ændre strengen på positionen. Brug "1FMM" som argumentet type, og erklær funktionen ugyldig.
I tidligere versioner af Microsoft Excel end version 4.0 har tegnet > været brugt til at ændre det første argument på positionen, og de øvrige argumenter kunne ikke ændres. Tegnet > svarer til n = 1 i Microsoft Excel version 4.0 og nyere.