Funzione DATITEMPOREALE Excel non può restituire una matrice

Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell’utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell’utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.

Clicca qui per visualizzare la versione originale in inglese dell’articolo: 286258
Questo articolo è stato archiviato. L’articolo, quindi, viene offerto “così come è” e non verrà più aggiornato.
Sommario
Microsoft Excel 2002, Microsoft Office Excel 2003 e Microsoft Office Excel 2007 forniscono una nuova funzione di foglio di lavoro che è denominata RTD. RTD consente di chiamare un server di automazione COM (Component Object Model) per recuperare i dati in tempo reale. La funzione DATITEMPOREALE non può restituire una matrice. Se la funzione DATITEMPOREALE viene utilizzata come una formula in forma di matrice, tutte le celle nella matrice restituito # valore.
Informazioni
La flessibilità inerente di un server di RealTimeData (RTD) e la funzione DATITEMPOREALE consente di utilizzarle nelle formule di matrice non necessarie. La funzione DATITEMPOREALE funzione può richiedere un numero arbitrario di stringhe o argomenti per specificare i dati che deve essere visualizzato in una cella. Utilizzando stringhe di argomento aggiuntive, un server RTD ben scritto può restituire un singolo valore. Excel solo è necessario a effettuare una chiamata singola il server RTD per recuperare tutti i dati dal server RTD. Pertanto, questa struttura non comprometta le prestazioni.

Con questa considerazione, in alcuni casi potrebbe essere necessario un server RTD per restituire una matrice di valori per un singolo argomento e potrebbe anche essere necessario tale matrice di valori da analizzare in più celle. In questo caso, il server RTD è in possibile di restituire una stringa singola contenente tutti i valori. Quindi, è possibile utilizzare un Microsoft Visual Basic, Applications Edition (VBA) funzione per analizzare la stringa in modo che i dati possono essere restituiti al foglio di lavoro come una matrice. Excel consente di metodo Evaluate di interpretare il formato di stringa come una matrice. Questa stringa è racchiusa tra parentesi graffe, le colonne vengono separate da virgole e righe sono separate da punti e virgola. Ad esempio, Excel possibile interpretare la seguente stringa come una matrice con 3 righe e 4 colonne:
{1, 2, 3, 4, 10, 20, 30, 40; 100, 200, 300, 400}
In alternativa, Excel è possibile interpet la seguente stringa come una matrice con 2 righe e 5 colonne:
{"a", "b", "c", "d","e"; "aa", "bb", "cc", "dd", "vedere"}
Il procedue riportato di seguito viene illustrata una tecnica che è possibile utilizzare per analisi di una stringa di questo tipo restituito da un server RTD in più celle.

Per effettuare questa operazione, attenersi alla seguente procedura:
  1. Creare il progetto Visual Basic per il server RTD descritto nell'articolo della Knowledge Base riportato di seguito riportato:
    285339Come creare un server RealTimeData per Excel
  2. Modulo di classe RTDFunctions del progetto, sostituire la seguente riga nella funzione IRtdServer_RefreshData :
    aUpdates(1, n) = oTopic.TopicValue					
    sostituire il codice con la seguente riga di codice:
    Static bToggle As BooleanbToggle = Not (bToggle)If bToggle Then   aUpdates(1, n) = "{1,2,3;10,20,30}"Else   aUpdates(1, n) = "{""a"",""b"",""c"";""d"",""e"",""f""}"End If					
  3. Creare il server RTD dal progetto Visual Basic.
  4. In Excel 2002, in Office Excel 2003 o in Office Excel 2007, avviare una nuova cartella di lavoro e quindi premere ALT+F11 per aprire il per applicazioni editor.
  5. Inserire un nuovo modulo di codice nel progetto di Visual Basic e quindi aggiungere al modulo di codice nell'esempio di codice.
    Function parseArrayData( arrayData as String ) as Variant   parseArrayData = Evaluate( arrayData )End Function					
  6. Chiudere Visual Basic, Applications Editor per tornare alla cartella di lavoro Excel.
  7. Selezionare una riga di due, intervallo di tre colonne di celle nel foglio di lavoro.
  8. Digitare la seguente formula e quindi premere CTRL + MAIUSC + INVIO per immetterla come formula in forma di matrice:
    =parseArrayData(RTD("ExcelRTD.RTDFunctions",,"AAA"))
  9. Dopo la prima notifica di aggiornamento, ognuna delle sei celle contiene un numero univoco. Dopo la seconda notifica di aggiornamento, ogni cella contiene un carattere univoco.
Riferimenti
Per ulteriori informazioni sui server RealTimeData, fare clic sui numeri degli articoli della Microsoft Knowledge Base riportato di seguito:
286259Le impostazioni di protezione e server RealTimeData di Excel
285888L'utilizzo di un server RTD Excel con DCOM
in tempo reale rtd rtdserver irtdserver XL2003 XL2007

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 286258 - Ultima revisione: 12/06/2015 00:05:23 - Revisione: 3.2

Microsoft Office Excel 2007, Microsoft Office Excel 2003, Microsoft Excel 2002 Standard Edition

  • kbnosurvey kbarchive kbmt kbinfo KB286258 KbMtit
Feedback