Função RTD do Excel não pode retornar uma matriz

Traduções deste artigo Traduções deste artigo
ID do artigo: 286258 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Sumário

Microsoft Excel 2002, Microsoft Office Excel 2003 e Microsoft Office Excel 2007 fornecem uma nova função de planilha chamado RTD. RTD permite que você chamar um servidor de automação COM (Component Object Model) para recuperar dados em tempo real. A função RTD não pode retornar uma matriz. Se a função RTD é usada como uma fórmula de matriz, todas as células na matriz retornarão # valor.

Mais Informações

A flexibilidade inerente de um servidor RTD (RealTimeData) e a função RTD torna usá-los em fórmulas de matriz desnecessárias. O RTD função pode levar a um número arbitrário de seqüências de caracteres ou tópicos para especificar os dados que está a ser exibido em uma célula. Usando seqüências de caracteres adicionais do tópico, um servidor RTD bem escrito pode retornar um único valor. Excel só deve fazer uma chamada única para o servidor RTD para recuperar todos os dados de servidor RTD. Portanto, esse design não comprometer o desempenho.

Com isso em mente, às vezes pode ser necessário um servidor RTD para retornar uma matriz de valores para um único tópico e você também pode precisar essa matriz de valores para ser analisado em várias células. Nesse caso, o servidor RTD pode retornar uma seqüência de caracteres única que contém todos os valores. Em seguida, você pode usar um Microsoft Visual Basic for Applications (VBA) função para analisar a seqüência de caracteres para que os dados podem ser retornados para a planilha como uma matriz. Excel pode usar o método Evaluate para interpretar seu formato de seqüência de caracteres como uma matriz. Essa seqüência de caracteres é colocada entre chaves, as colunas são separadas por vírgulas e linhas são separadas por ponto-e-vírgula. Por exemplo, o Excel pode interpretar a seqüência de caracteres a seguir como uma matriz com 3 linhas e 4 colunas:
{1, 2, 3, 4; 10, 20, 30, 40; 100, 200, 300, 400}
Ou, o Excel pode interpet a seguinte seqüência de caracteres como uma matriz com 2 linhas e 5 colunas:
{"um", "b", "c", "d","e"; "aa", "bb", "cc", "dd", "ee"}
Procedue seguinte ilustra uma técnica que você pode usar para analisar uma cadeia de caracteres desse tipo é retornado de um servidor RTD em várias células.

Para fazer isso, execute as seguintes etapas:
  1. Crie projeto Visual Basic para o servidor RTD descrito no seguinte artigo Knowledge:
    285339Como criar um servidor RealTimeData para Excel
  2. No módulo de classe RTDFunctions do projeto, substitua a seguinte linha na função IRtdServer_RefreshData :
    aUpdates(1, n) = oTopic.TopicValue
    					
    substituir o código com a seguinte linha 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. Crie o servidor RTD do projeto Visual Basic.
  4. No Excel 2002, no Office Excel 2003 ou no Office Excel 2007, iniciar uma nova pasta de trabalho e, em seguida, pressione ALT+F11 para abrir o Visual Basic para aplicativos Editor.
  5. Insira um novo módulo de código do Visual Basic for Applications projeto e adicione o seguinte exemplo de código do módulo de código.
    Function parseArrayData( arrayData as String ) as Variant
       parseArrayData = Evaluate( arrayData )
    End Function
    					
  6. Feche o Visual Basic for Applications Editor retornar para a pasta de trabalho do Excel.
  7. Selecione uma linha dois, intervalo de três colunas de células na planilha.
  8. Digite a fórmula a seguir e pressione CTRL + SHIFT + ENTER para inseri-la como uma fórmula de matriz:
    =parseArrayData(RTD("ExcelRTD.RTDFunctions",,"AAA"))
  9. Após a primeira notificação de atualização, cada uma das seis células contém um número exclusivo. Após a notificação de atualização de segunda, cada célula contém um caractere único.

Referências

Para obter mais informações sobre servidores RealTimeData, clique nos números abaixo para ler os artigos na Base de dados de Conhecimento da Microsoft:
286259Configurações de segurança e Excel RealTimeData servidores
285888Como usar um servidor RTD do Excel com o DCOM

Propriedades

ID do artigo: 286258 - Última revisão: segunda-feira, 14 de maio de 2007 - Revisão: 3.2
A informação contida neste artigo aplica-se a:
  • Microsoft Office Excel 2007
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 Standard Edition
Palavras-chave: 
kbmt kbinfo KB286258 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 286258

Submeter comentários

 

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