Applies ToExcel för Microsoft 365 Excel för Microsoft 365 för Mac Excel för webben Excel 2024 Excel 2024 för Mac Excel 2021 Excel 2021 för Mac Excel 2019 Excel 2016 Excel för iPad Excel för iPhone Excel för Android-surfplattor Excel för Android-telefoner

Viktigt!:  Varning!    Om registret redigeras felaktigt kan det skada operativsystemet så allvarligt att det måste installeras om. Microsoft kan inte garantera att problem som orsakats av felaktig redigering av registret går att lösa. Innan du redigerar registret bör du säkerhetskopiera alla viktiga data. Om du vill ha den senaste informationen om att använda och skydda datorns register läser du i Microsoft Windows Hjälp.

I den här artikeln beskrivs formelsyntaxen för och användningen av funktionerna ANROPA, REGISTRERA och REGISTRERA.ID i Microsoft Excel.

Obs!:  Funktionerna ANROPA och REGISTRERA är inte tillgängliga i Excel på webben.

Den här artikeln innehåller följande avsnitt

Beskrivning

Nedan beskrivs de argument- och returvärdedatatyper som används av funktionerna ANROPA, REGISTRERA och REGISTER.ID . Argument och returvärden skiljer sig något beroende på din operativsystemmiljö och dessa skillnader noteras i datatypstabellen.

Överst på sidan

Datatyper

I funktionerna ANROPA, REGISTRERA och REGISTRERA.ID anger argumentet, typ datatypen för det returnerade värdet och datatyperna för alla argument till DLL-funktionen eller kodresursen. Det första tecknet i typ representerar datatypen för det returnerade värdet. De övriga tecknen anger datatyperna för alla argumenten. Exempelvis krävs typ-argumentet "BIB" för en DLL-funktion som returnerar ett flyttal och som använder ett heltal och ett flyttal som argument.

Nedanstående tabell innehåller en fullständig lista över de datatypkoder som Microsoft Excel känner igen, en beskrivning av varje datatyp, hur argumenten eller det returnerade värdet överförs, samt en typisk deklaration i programmeringsspråket C för datatypen i fråga.

Kod

Beskrivning

Överförs av

C-deklaration

En

Logiskt(FALSKT = 0), SANT = 1)

Värde

short int

B

8-byte flyttalsvärde enligt IEEE

Värde(Windows)

Referens (Macintosh)

double(Windows)

double * (Macintosh)

c

Nollavslutad sträng (maxlängd på sträng = 255)

Referens

char *

:d

Byte-räknad sträng (första byte innehåller strängens längd, maxlängd på sträng = 255 tecken)

Referens

Unsigned char *

R

8-byte flyttalsvärde enligt IEEE

Referens

double *

f

Nollavslutad sträng (maxlängd på sträng = 255 tecken)

Referens (modifiera på plats)

char *

G

Byte-räknad sträng (första byte innehåller strängens längd, maxlängd på sträng = 255 tecken)

Referens (modifiera på plats)

unsigned char *

H

2-byte heltal utan tecken

Värde

unsigned short int

I

2-byte heltal med tecken

Värde

short int

J

4-byte heltal med tecken

Värde

long int

N

Matris

Referens

FP *

l

Logiskt(FALSKT = 0), SANT = 1)

Referens

short int *

"m"

2-byte heltal med tecken

Referens

short int *

N

4-byte heltal med tecken

Referens

long int *

O

Matris

Referens

Tre argument överförs:unsigned short int *unsigned short int *double [ ]

P

Microsoft Excel datastruktur OPER

Referens

OPER *

R

Microsoft Excel datastruktur XLOPER

Referens

XLOPER *

Överst på sidan

Kommentarer

  • Deklarationer i C-språket grundas på antagandet att din kompilator använder 8-byte double, 2-byte short int och 4-byte long int som standard.

  • I programmeringsmiljön Microsoft Windows deklareras alla pekare som far-pekare. Du ska exempelvis deklarera datatypkoden D som unsigned char far * i Microsoft Windows.

  • Alla funktioner i DLL-bibliotek och kodresurser anropas med hjälp av Pascals anropskonvention. De flesta C-kompilatorer tillåter att Pascals anropskonvention används genom att nyckelordet pascal läggs till funktionsdeklarationen enligt följande exempel: pascal void main (rows,columns,a)

  • Om en funktion använder en datatyp för direktreferens för sitt returneringsvärde kan du skicka en null-pekare som returvärde. Microsoft Excel tolkar null-pekaren som #NUM! felvärdet #REFERENS!.

Överst på sidan

Ytterligare information om datatyper

Detta avsnitt innehåller detaljerad information om datatyperna F, G, K, O, P och R samt annan information om argumentet type_text.

Datatyperna F och G

Med hjälp av datatyperna F och G kan en funktion modifiera en strängbuffert som skapats av Microsoft Excel. Om typkoden för det returnerade värdet är F eller G ignorerar Microsoft Excel funktionens returvärde. Microsoft Excel söker i stället igenom listan över funktionsargument efter den första motsvarande datatypen (F eller G) och använder sedan det aktuella innehållet i strängbufferten som det returnerade värdet. Microsoft Excel använder 256 byte för argumentet så att funktionen kan returnera en större sträng än den har tagit emot.

Överst på sidan

Datatyp K

Datatypen K använder en pekare till en FP-struktur med variabel storlek. Strukturen i DLL eller kodresursen definieras på följande sätt:

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

Deklarationen double array[1] avsätter endast minnesutrymme för en matris med ett enda element. Antalet element i den verkliga matrisen motsvarar antalet rader multiplicerat med antalet kolumner.

Överst på sidan

Datatyp O

Datatypen O kan endast användas som ett argument, inte som ett returnerat värde. Datatypen överför tre element: en pekare till antalet rader i en matris, en pekare till antalet kolumner i en matris och en pekare till en tvådimensionell matris med flyttalsvärden.

I stället för att returnera ett värde kan en funktion ändra en matris som överförs av datatypen O. Det gör du genom att använda ">O" som type_text argument. Mer information finns i "Ändra på plats – Funktioner deklareras som ogiltiga" nedan.

Datatypen O har skapats för direkt kompatibilitet med Fortran DLL-funktioner, som överför argument med referens.

Överst på sidan

Datatyp P

Datatypen P är en pekare till en OPER-struktur. OPER-strukturen innehåller 8 byte data följt av en id-kod på 2 byte som anger datatypen. Med hjälp av datatypen P kan en DLL-funktion eller en kodresurs anta och returnera alla datatyper i Microsoft Excel.

OPER-strukturen definieras på följande sätt:

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;

Fältet type innehåller ett av följande värden.

Typ

Beskrivning

Värdefält att använda

1

Numerisk

num

2

Sträng (första byte innehåller strängens längd)

str

4

Boolesk (logisk)

bool

16

Fel: Felvärdena är:

0#Skärning!

7#Division/0!

15#Värdefel!

23#Referens!

29#Namn?

36#Ogiltigt!

42#Saknas!

fel

64

Matris

matris

128

Argument saknas

256

Tom cell

De sista två värdena kan endast användas som argument, inte som returnerade värden. Värdet för saknade argument (128) överförs när anroparen utelämnar ett argument. Värdet för tom cell (256) överförs när anroparen överför en referens till en tom cell.

Överst på sidan

Datatyp R – Anropa Microsoft Excel-funktioner från DLL-filer

Datatypen R är en pekare till en XLOPER-struktur, som är en förbättrad version av OPER-strukturen. I Microsoft Excel version 4.0 och senare kan du använda datatypen R för att skriva DLL-filer och kodresurser som anropar Microsoft Excel-funktioner. Med XLOPER-strukturen kan en DLL-funktion överföra bladreferenser och införa flödesreglering, förutom att den kan överföra data. En fullständig beskrivning av datatyp R och Microsoft Excel API-gränssnitt ryms inte i detta hjälpavsnitt. Microsoft Office XP Developer's Guide innehåller detaljerad information om datatypen R, Microsoft Excel API och många andra tekniska aspekter av Microsoft Excel.

Överst på sidan

Ej beständiga funktioner och omräkning

Microsoft Excel beräknar normalt en DLL-funktion (eller en kodresurs) endast när den matas in i en cell, när någon av dess överordnade ändras eller när cellen beräknas under ett makro. I ett kalkylblad kan en DLL-funktion eller kodresurs göras ej beständig, vilket innebär att den räknas om varje gång kalkylbladet räknas om. Om en funktion ska göras ej beständig infogas ett utropstecken (!) som sista tecken i argumentet typ.

Exempel: I Microsoft Excel för Windows utför följande kalkylbladsformel omräkning varje gång kalkylbladet räknas om:

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

Överst på sidan

Modifiera på plats – funktioner utan returvärde

Man kan använda en enstaka siffra, n, för den returnerade typkoden i typ, där n är ett tal mellan 1 och 9. Detta instruerar Microsoft Excel att modifiera variabeln på den plats som utpekas med det n:te argumentet i typ, i stället för att returnera ett värde. Detta brukar även kallas att modifiera på plats. Det n:te argumentet måste vara en datatyp som överförs med referens (C, D, E, F, G, K, L, M, N, O, P eller R). DLL-funktionen eller kodresursen måste också deklareras med nyckelordet void i C-språket (eller nyckelordet procedure i språket Pascal).

Exempel: En DLL-funktion som antar en nollavslutad sträng och två pekare till heltal som argument kan modifiera strängen på plats. Använd "1FMM" för argumentet type_text och deklarera funktionen som ogiltig (void).

Tidigare versioner än Microsoft Excel 4.0 använde tecknet > för att ändra det första argumentet. det gick inte att ändra något annat argument än det första. Tecknet > motsvarar n = 1 i Microsoft Excel version 4.0 och senare.

Överst på sidan

Behöver du mer hjälp?

Vill du ha fler alternativ?

Utforska prenumerationsförmåner, bläddra bland utbildningskurser, lär dig hur du skyddar din enhet med mera.

Communities hjälper dig att ställa och svara på frågor, ge feedback och få råd från experter med rika kunskaper.