Función RDTR de Excel no puede devolver una matriz

Seleccione idioma Seleccione idioma
Id. de artículo: 286258 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

Resumen

Microsoft Excel 2002, Microsoft Office Excel 2003 y Microsoft Office Excel 2007 proporcionan una nueva función de hoja de cálculo que se denomina RTD. RTD permite llamar a un servidor de automatización modelo de objetos componentes (COM) de Microsoft para recuperar datos en tiempo real. La función RTD no puede devolver una matriz. Si se utiliza la función RTD como una fórmula matricial, todas las celdas de la matriz devuelven # valor.

Más información

La flexibilidad inherente de un servidor RealTimeData (RTD) y la función RTD hace que su uso en las fórmulas de matriz innecesarias. RTD la función puede tomar un número arbitrario de cadenas o temas para especificar los datos que se muestra en una celda. Mediante cadenas de tema adicional, un servidor de RDTR bien escrito puede devolver un único valor. Excel sólo debe realizar una llamada única al servidor RTD para recuperar todos los datos desde el servidor RTD. Por lo tanto, este diseño no comprometa el rendimiento.

Teniendo esto en cuenta, a veces puede que necesite un servidor RTD para devolver una matriz de valores para un solo tema y que también necesite dicha matriz de valores que se analiza en varias celdas. En este caso, el servidor RTD puede devolver una sola cadena que contiene todos los valores. A continuación, puede utilizar un Microsoft Visual Basic para aplicaciones (VBA) función para analizar la cadena para que los datos pueden devolverse a la hoja de cálculo como una matriz. Excel puede utilizar el método Evaluate para interpretar el formato de cadena como una matriz. Esta cadena está encerrada entre llaves, las columnas están separadas por comas y filas están separadas por punto y coma. Por ejemplo, Excel puede interpretar la cadena siguiente como una matriz con 3 filas y 4 columnas:
{1, 2, 3, 4 10, 20, 30, 40; 100, 200, 300, 400}
O bien, Excel puede interpet la cadena siguiente como una matriz con 2 filas y 5 columnas:
{"un", "b", "c", "d","e"; "aa", "bb", "cc", "dd", "vea"}
El siguiente procedue muestra una técnica que puede utilizar para analizar una cadena de este tipo se devuelve desde un servidor de RDTR en varias celdas.

Para ello, siga estos pasos:
  1. Crear el proyecto de Visual Basic para el servidor RTD descrito en el siguiente artículo de Knowledge Base:
    285339Cómo crear un servidor RealTimeData para Excel
  2. En el módulo de clase RTDFunctions del proyecto, reemplace la línea siguiente en la función IRtdServer_RefreshData :
    aUpdates(1, n) = oTopic.TopicValue
    					
    reemplazar el código con la siguiente línea de código:
    Static bToggle As Boolean
    bToggle = 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. Crear el servidor RTD desde el proyecto Visual Basic.
  4. En Excel 2002, en Office Excel 2003 o en Office Excel 2007, inicie un nuevo libro y, a continuación, presione ALT+F11 para abrir Visual Basic para aplicaciones Editor.
  5. Inserte un nuevo módulo de código en el proyecto de Visual Basic para aplicaciones y, a continuación, agregue el siguiente ejemplo de código al módulo de código.
    Function parseArrayData( arrayData as String ) as Variant
       parseArrayData = Evaluate( arrayData )
    End Function
    					
  6. Cierre el Editor de Visual Basic para aplicaciones devolver al libro de Excel.
  7. Seleccione una fila de dos por intervalo de tres columnas de celdas de la hoja de cálculo.
  8. Escriba la fórmula siguiente y, a continuación, presione CTRL + MAYÚS+ENTRAR para especificar como una fórmula de matriz:
    =parseArrayData(RTD("ExcelRTD.RTDFunctions",,"AAA"))
  9. Después de la primera notificación de actualización, cada uno de seis celdas contiene un número único. Después de la segunda notificación de actualización, cada celda contiene un carácter único.

Referencias

Para obtener más información acerca de los servidores de RealTimeData, haga clic en los números de artículo siguientes para verlos en Microsoft Knowledge Base:
286259Configuración de seguridad y servidores de RealTimeData de Excel
285888Cómo utilizar un servidor de RDTR de Excel con DCOM

Propiedades

Id. de artículo: 286258 - Última revisión: lunes, 14 de mayo de 2007 - Versión: 3.2
La información de este artículo se refiere a:
  • Microsoft Office Excel 2007
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 Standard Edition
Palabras clave: 
kbmt kbinfo KB286258 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 286258

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com