Konfigurera och använda funktionen RTD i Excel

Anteckning

Office 365 ProPlus byter namn till Microsoft 365-appar för företag. Mer information om den här ändringen finns i det här blogginlägget.

Sammanfattning

Anteckning

Prestandan för funktionen RealTimeData (RTD) har förbättrats avsevärt i Excel M365 version 2002 eller senare. Mer information finns i Förbättringar i prestanda och begränsningar i Excel.

I den här artikeln beskrivs de funktioner som funktionen RealTimeData (RTD) tillhandahåller. Microsoft Office Excel innehåller en kalkylbladsfunktion, RealTimeData (RTD). Med den här funktionen kan du anropa en COM-automationsserver (Component Object Model) för att hämta data i realtid.

När du behöver skapa en arbetsbok som innehåller data som uppdateras i realtid, till exempel ekonomiska data eller vetenskapliga data, kan du nu använda kalkylbladsfunktionen RTD. I tidigare versioner av Excel används DDE (Dynamic Data Exchange) för detta ändamål. Funktionen RTD baseras på COM-teknik och ger fördelar när det gäller robusthet, tillförlitlighet och enkelhet. RTD beror på tillgängligheten för en RTD-server för att realtidsdata ska vara tillgängliga i Excel. Mer information om hur du skapar en RTD-server finns i avsnittet "Referenser".

Funktionen RTD hämtar data från en RTD-server för användning i arbetsboken. Funktionsresultatet uppdateras när nya data blir tillgängliga från servern och arbetsboken kan ta emot dem. Servern väntar tills Excel är inaktivt innan du uppdaterar. Då blir det lätt för utvecklaren att behöva avgöra om Excel är tillgängligt för att acceptera uppdateringar. Funktionen RTD skiljer sig från andra funktioner i det här avseendet eftersom andra funktioner endast uppdateras när kalkylbladet beräknas om.

Även om funktionen RTD tillhandahåller en länk till data på en server är den inte samma typ av länk som referenser till celler i andra kalkylblad eller arbetsböcker. Om du till exempel använder funktionen RTD i en arbetsbok visas inget startmeddelande om länkar när du öppnar arbetsboken och du kan inte heller hantera status för en RTD-funktion via dialogrutan Redigera länkar.

Syntax

Funktionen RTD har följande syntax:

=RTD(RealTimeServerProgID;Servernamn;Ämne1;[Ämne2]; ...)

där funktionsargumenten är följande:

  • RealTimeServerProgID

    En sträng som representerar program-ID för den RTD-server som är installerad på det lokala systemet. Det här är vanligtvis ett COM-tillägg som har registrerats genom en konfigurationsprocedur eller med regSvr32. RealTimeServerProgID är ett obligatoriskt argument.

  • Servernamn

    En sträng som representerar namnet på den server där RTD-servern ska köras. Om RTD-servern körs lokalt ska Servernamn vara en tom sträng ("") eller utelämnas.

  • Ämne1; [Ämne2]; ...

    Strängar som anger vilka data som hämtas. Du kan använda från en till 28 ämnen, även om endast ett ämne krävs.

Använda RTD

Som ett exempel på funktionen RTD kan du hämta information från en server som levererar kontinuerliga data för de gående tvåorna i flera samtidigt. Anta att servern tillhandahålls som ett DLL-bibliotek (Dynamic Link Library) med namnet RaceReport.dll, att det är installerat på användarens dator och att det är registrerat som ett COM-tillägg genom sin egen konfigurationsprocess. Den allmänna formen av rtd-funktionen som den används med den här servern kan vara följande

=RTD("MyRTDServerProdID";"MyServer";"RacingNum";"RunnerID";"StatType")

där avsnitten RacingNum, KörNr och StatType avgör etan vars data är obligatoriska och vilken typ av data som krävs för en viss användning av funktionen.

Här kan användaren välja en cell och skriva följande formel i den

=RTD("ExcelRTD.RacingReport";"";"2";"16";"Tid")

för att se aktuell förfluten tid för löpnummer 16 i etrr 2. Antalet ämnen och hur associerade data ser ut avgörs av com-serverns utvecklare. Till exempel kan tävlingsrapporteringsservern leverera andra data om du använder följande RTD-funktion:

=RTD("ExcelRTD.RacingReport";"";"3";"25";"Position")

I det här fallet anger de data som returneras aktuell position för det andra talet 25 i etrr 3.

På det här sättet kan samma funktion användas olika i hela arbetsboken för att hämta olika data från samma server, som alla uppdateras automatiskt.

Figursättning för att förenkla användningen

Funktionen RTD kan användas i användardefinierade funktioner i Microsoft Visual Basic for Applications. De blir sedan figursättning för funktionen RTD. Den här metoden kan vara användbar när du vill skydda användarna från informationen om RTD-servernamnet och ProgID, och för att de bara ska kunna fokusera på de data som är viktiga för dem.

I det föregående scenariot kan användaren till exempel få två funktioner: GetTime(TwoID) och GetPosition(RunnerID). De här funktionerna förutsätter att användaren alltid har samma server- och tävlingsnummer. Därför behöver användaren bara ange en löpares ID för att ta emot aktuella data för den löpares förflutna tid respektive position.

Beräkning

Eftersom RTD uppdaterar data när Excel är inaktivt fortsätter det att ta emot information om Excel är i läget för manuell beräkning. I så fall cachelagras nya data och aktuella värden används när en manuell beräkning utförs.

Säkerhet

RTD-servrar ska vara digitalt signerade. Om en RTD-server inte är digitalt signerad kanske servern inte läses in och ett #N/A visas i cellerna som refererar till RTD-servern.

För Microsoft Office Excel 2007 kan du granska säkerhetsinställningarna med hjälp av Säkerhetscenter. Du kommer åt detta via fliken Säkerhetscenter i dialogrutan Excel-alternativ.

För Microsoft Office Excel 2003 och Microsoft Excel 2002 kan du ändra inläsningsbeteendet genom att justera inställningarna för makrosäkerhet i Excel.

Referenser

Om du vill ha mer information om RTD- och Excel-säkerhet klickar du på följande artikelnummer för att visa artikeln i Microsoft Knowledge Base:

Säkerhetsinställningar för 286259 och Excel RealTimeData-servrar

Om du vill ha mer information om hur du skapar en RTD-server klickar du på följande artikelnummer för att visa artikeln i Microsoft Knowledge Base:

285339 Så här skapar du en RealTimeData-server för Excel