Nem todas as funções de folha de cálculo do Excel são suportadas como métodos do objecto da aplicação no Visual Basic for Applications


Para o Microsoft Excel 97 e anterior ou Microsoft Excel 98 Macintosh Edition ou uma versão anterior do presente artigo, consulte 107564 .

Resumo


No Microsoft Visual Basic for Applications, nem todas as funções de folha de cálculo do Microsoft Excel são suportadas como métodos do objeto Application . Se tentar utilizar uma destas funções de folha de cálculo com o objecto de aplicação , receberá a seguinte mensagem de erro:
Run-Time Error '438': o objecto não suporta esta propriedade ou método

Mais Informações


Pode escrever procedimentos do Visual Basic que chamam funções de folha de cálculo do Microsoft Excel. As funções de folha de cálculo que estão disponíveis para procedimentos do Visual Basic no objeto Application e, são listadas na lista de Propriedades para o objecto de aplicação no Browser.Most de objecto do Visual Basic oumétodos funções de folha de cálculo que não estão disponíveis como métodos do objecto daaplicação têm um equivalente operador incorporada do Microsoft Visual Basic ou uma função. Por exemplo, a função de folha de cálculo MOD não está disponível como um método do objecto da aplicação porque existe um operador Mod equivalente incorporado para o Visual Basic. Um operador de Visual Basic funciona mais depressa do que uma função do Microsoft Excel num módulo do Visual Basic.

Disponíveis como métodos no Visual Basic de funções de folha de cálculo do Excel

Nota: os seguintes passos partem do princípio que instalou o ficheiro de ajuda do Visual Basic. Para apresentar uma lista de todas as funções de folha de cálculo do Microsoft Excel estão disponíveis como métodos do objecto da aplicação no Visual Basic, siga estes passos:
  1. No Editor do Visual Basic, escreva as funções de folha de cálculo no Microsoft Assistente do Office e, em seguida, clique em Procurar.
  2. Na lista de tópicos, clique em Lista de folha de cálculo funções disponíveis para o Visual Basic.
Para localizar o operador de Visual Basic equivalente ou função de uma função de folha de cálculo do Microsoft Excel que não está disponível como um método de objecto de aplicação , siga estes passos:
  1. No Editor do Visual Basic, escreva o nome de função ou um operador no Assistente do Office e, em seguida, clique em Procurar. Por exemplo, escreva mod.
  2. Na lista de tópicos, clique no tópico para a função ou o operador. Por exemplo, clique no tópico de Operador Mod .
A tabela seguinte contém funções de folha de cálculo que não estão disponíveis como métodos do objeto Application . A coluna do Visual Basic equivalentes lista funções que pode utilizar, que produzem resultados os resultados de igual (ou semelhantes) que as funções devolvem.
   Microsoft Excel                   Visual Basic   worksheet function                equivalent   -------------------------------------------------------------------   ABS()                             Abs function   ATAN()                            Atn function   CHAR()                            CHR function   CODE()                            ASC function   COS()                             Cos function   DATE()                            DATESERIAL function   ERROR.TYPE()                      ERR function   EXACT()                           STRCOMP function   EXP()                             Exp function   INDIRECT()                        No direct equivalent - use Range,                                     Cells, Offset, or any other way of                                     referencing cells.   INFO()                            No direct equivalent - use the                                     following:                                     CURDIR function, the following                                     Application properties (MEMORYTOTAL,                                     MEMORYUSED, MEMORYFREE, VERSION,                                     OPERATINGSYSTEM, CALCULATION, COUNT)   ISBLANK()                         ISEMPTY function   ISREF()                           TYPENAME function   LEN()                             LEN function   LOWER()                           LCASE function   N()                               No equivalent (none needed)   NA()                              No equivalent - use                                     ActiveCell.Value = "#N/A"   RAND()                            RND function   RANDOMIZE()                       Randomize function   SIN()                             Sin function   SIGN()                            Sgn function   SQR()                             Sqr function   SQRT()                            Sqr function   T()                               No equivalent (none needed)   TAN()                             Tan function   TODAY()                           DATE function   TRUNC()                           FIX function   TYPE()                            TYPENAME function   UPPER()                           UCASE function   VALUE()                           VAL function 
Nota: função de folha de cálculo do Microsoft Excel e o operador de equivalente de Visual Basic ou função não são sempre calculados da mesma forma e podem originar resultados diferentes, mesmo quando tiverem o mesmo nome. Utilizando o operador de equivalente do Visual Basic ou uma função é preferencial para aumentar a velocidade e a flexibilidade nos cálculos. Além disso, o operador do Visual Basic ou função está disponível para todas as aplicações que utilizam o Microsoft Visual Basic para Applications.Although é recomendado que utilize o Visual Basic operadores ou funções mostradas na lista acima, existem alternativas métodos para utilizar as funções de folha de cálculo numa macro do Visual Basic, se necessário. Por exemplo, pode utilizar a folha de cálculo ATAN na macro do Visual Basic utilizando o ExecuteExcel4Macro ou funções de avaliar :
   x = Application.ExecuteExcel4Macro("Atan(12)") 
- ou -
   x = Application.Evaluate("Atan(12)")