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 M365 version 2002 eller senare Excel M365. Mer information finns i Excel förbättringar av prestanda och begränsningar.

I den här artikeln beskrivs de funktioner som funktionen RealTimeData (RTD) tillhandahåller. Microsoft Office Excel finns 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 Excel används DDE (Dynamic Data Exchange) för detta ändamål. Funktionen RTD baseras på COM-teknik och har fördelar när det gäller robusthet, tillförlitlighet och enkelhet. RTD beror på tillgängligheten på en RTD-server för att realtidsdata ska vara tillgängliga för 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 inaktiv innan den uppdateras. 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 den är installerad på användarens dator och att den är registrerad 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 bestämmer 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 numret 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(RunnerID) 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 inaktiv 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 den via fliken Säkerhetscenter i Excel Alternativ.

För Microsoft Office Excel 2003 och i Microsoft Excel 2002 kan belastningsbeteendet ändras genom att justera inställningarna för makrosäkerhet i Excel.

Referenser

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

Mer information om hur du skapar en RTD-server finns i Skapa en RealTimeData-server för Excel.