Så här konfigurerar och använder du RTD-funktionen i Excel

Sammanfattning

Obs!

Prestanda 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 av prestanda och begränsningar i Excel.

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

När du måste skapa en arbetsbok som innehåller data som uppdateras i realtid, till exempel finansiella data eller vetenskapliga data, kan du nu använda rtd-kalkylbladsfunktionen. I tidigare versioner av Excel används DDE (Dynamic Data Exchange) för detta ändamål. RTD-funktionen är baserad på COM-teknik och ger fördelar i robusthet, tillförlitlighet och bekvämlighet. RTD beror på tillgängligheten för en RTD-server för att göra realtidsdata tillgängliga för Excel. Mer information om hur du skapar en RTD-server finns i avsnittet "Referenser".

RTD-funktionen 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 acceptera det. Servern väntar tills Excel är inaktivt innan den uppdateras. På så sätt slipper utvecklaren avgöra om Excel är tillgängligt för att acceptera uppdateringar. RTD-funktionen skiljer sig från andra funktioner i det här avseendet eftersom andra funktioner endast uppdateras när kalkylbladet beräknas om.

Även om RTD-funktionen 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 RTD-funktionen i en arbetsbok får du inte startmeddelandet Länkar när du öppnar arbetsboken, och du kan inte heller hantera statusen för en RTD-funktion via dialogrutan Redigera länkar.

Syntax

RTD-funktionen använder följande syntax

=RTD(RealTimeServerProgID,ServerName,Topic1,[Topic2], ...)

där funktionsargumenten är följande:

  • RealTimeServerProgID

    En sträng som representerar program-ID för RTD-servern som är installerad på det lokala systemet. Detta är vanligtvis ett COM-tillägg som registreras av en konfigurationsprocedur eller med hjälp av 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 ServerName vara en tom sträng ("") eller utelämnas.

  • Topic1, [Topic2], ...

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

Använda RTD

Som ett exempel på RTD-funktionen bör du överväga att hämta information från en server som levererar kontinuerliga data för löpare i flera samtidiga lopp. Anta att servern tillhandahålls som ett dynamiskt länkbibliotek (DLL) med namnet RaceReport.dll, att den är installerad på användarens dator och att den registreras som ett COM-tillägg av sin egen installationsprocess. Den allmänna formen av RTD-funktionen som används med den här servern kan vara följande

=RTD("MyRTDServerProdID","MyServer","RaceNum","RunnerID","StatType")

där ämnena RaceNum, RunnerID och StatType avgör loppet av intresse, den löpare vars data krävs och typen av data 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.RaceReport","","2","16","Time")

för att se den aktuella tiden för löpare nummer 16 i lopp nummer 2. Antalet ämnen och typen av associerade data bestäms av com-serverns utvecklare. Till exempel kan rasrapporteringsservern leverera olika data om du använder följande RTD-funktion:

=RTD("ExcelRTD.RaceReport","","3","25","Position")

I det här fallet anger de data som returneras den aktuella positionen för löpare nummer 25 i lopp nummer 3.

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

Omslutning för att förenkla användningen

RTD-funktionen kan användas i användardefinierade funktioner (UDF: er) i Microsoft Visual Basic for Applications. Dessa blir sedan omslutningar för RTD-funktionen. Den här metoden kan vara användbar för att skydda användare från information om RTD-servernamnet och ProgID, och för att göra det möjligt för dem att endast 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 (RunnerID) och GetPosition(RunnerID). Dessa funktioner förutsätter att användaren alltid hanterar samma server och rasnummer. Därför behöver användaren bara ange en löpares ID för att ta emot aktuella data på löparens 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 manuellt beräkningsläge. I så fall cachelagras nya data och de aktuella värdena används när en manuell beräkning utförs.

Säkerhet

RTD-servrar ska signeras digitalt. Om en RTD-server inte är digitalt signerad kanske servern inte läses in och en #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 kan komma åt detta via fliken Säkerhetscenter i dialogrutan Excel-alternativ .

För Microsoft Office Excel 2003 och Microsoft Excel 2002 kan inläsningsbeteendet ändras genom att justera makrosäkerhetsinställningarna i Excel.

Referenser

Mer information om RTD- och Excel-säkerhet finns i Konfigurera och använda RTD-funktionen i Excel.

Mer information om hur du skapar en RTD-server finns i Så här skapar du en RealTimeData-server för Excel.