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

Traduções de Artigos Traduções de Artigos
Artigo: 286258 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Sumário

Microsoft Excel 2002, Microsoft Office Excel 2003 e Microsoft Office Excel 2007 fornecem uma nova função de folha de cálculo que chama a função RTD. Função RTD permite-lhe chamar um servidor de automatização COM (Component Object Model) da Microsoft para obter dados em tempo real. A função RTD não pode devolver uma matriz. Se a função RTD é utilizada como uma fórmula de matriz, todas as células na matriz devolvem # valor.

Mais Informação

A flexibilidade inerente de um servidor RealTimeData (RTD) e a função RTD torna utilizá-los em fórmulas de matriz desnecessárias. A função RTD função pode demorar um número arbitrário de cadeias ou tópicos para especificar os dados que está a ser apresentadas numa célula. Utilizando cadeias de tópico adicionais, um servidor RTD consultar pode devolver um valor único. Excel só deve fazer uma chamada única para o servidor RTD para obter os dados do servidor RTD. Por conseguinte, esta estrutura não comprometer o desempenho.

Com isto em mente, por vezes, poderá ser necessário um servidor RTD para devolver uma matriz de valores para um único tópico e também poderá ter que matriz de valores para ser analisada em várias células. Neste caso, o servidor RTD pode devolver uma cadeia única que contém todos os valores. Em seguida, pode utilizar um Microsoft Visual Basic for Applications (VBA) função para analisar a cadeia para que os dados podem ser devolvidos à folha de cálculo como uma matriz. Excel pode utilizar o método de Avaliar para interpretar o formato de cadeia como uma matriz. Esta cadeia é incluídos entre chavetas, 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 seguinte cadeia como uma matriz com linhas de 3 e 4 colunas:
{1, 2, 3, 4 10, 20, 30, 40; 100, 200, 300, 400}
Ou Excel pode interpet a seguinte cadeia como uma matriz com 2 linhas e 5 colunas:
{"a", "b", "c", "d","e"; "aa", "bb", "cc", "dd", "ee"}
Procedue seguinte ilustra uma técnica que pode utilizar para analisar uma cadeia deste tipo devolvido por um servidor RTD em várias células.

Para o fazer, siga estes passos:
  1. Crie projecto do Visual Basic para o servidor RTD descrito no seguinte artigo da base de dados de conhecimento da:
    285339Como criar um servidor RealTimeData para Excel
  2. No módulo de classe RTDFunctions do projecto, substitui 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 projecto Visual Basic.
  4. No Excel 2002, no Office Excel 2003 ou no Office Excel 2007, iniciar um novo livro e, em seguida, prima ALT+F11 para abrir o Visual Basic para aplicações Editor.
  5. Inserir um novo módulo de código do Visual Basic for Applications projecto 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 voltar ao livro do Excel.
  7. Seleccione uma linha de dois, três colunas intervalo de células na folha de cálculo.
  8. Escreva a seguinte fórmula e, em seguida, prima CTRL + SHIFT + ENTER para introduzi-la como uma fórmula de matriz:
    =parseArrayData(RTD("ExcelRTD.RTDFunctions",,"AAA"))
  9. Após a primeira notificação de actualização, cada uma das seis células contém um número único. Após a notificação de actualização de segunda, cada célula contém um carácter único.

Referências

Para obter mais informações sobre servidores RealTimeData, clique números de artigo que se seguem para visualizar os artigos na base de dados de conhecimento da Microsoft:
286259Definições de segurança e Excel RealTimeData servidores
285888Como utilizar um servidor RTD Excel com o DCOM

Propriedades

Artigo: 286258 - Última revisão: 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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes 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