No todas las funciones de hoja de cálculo de Excel son compatibles con los métodos del objeto Application en Visual Basic para aplicaciones


Para obtener Microsoft Excel 97 y versiones anteriores o Microsoft Excel 98 Macintosh Edition o una versión anterior de este artículo, consulte 107564 .

Resumen


En Microsoft Visual Basic para aplicaciones, no todas las funciones de hoja de cálculo de Microsoft Excel se admiten como métodos del objeto Application . Si intenta usar una de estas funciones de hoja de cálculo con el objeto Application , recibirá el siguiente mensaje de error:
Error de tiempo de ejecución ' 438 ': el objeto no admite esta propiedad o método

Más información


Puede escribir procedimientos de Visual Basic que llamen a funciones de hoja de cálculo de Microsoft Excel. Las funciones de hoja de cálculo que están disponibles para los procedimientos de Visual Basic se encuentran en el objeto Application y se enumeran en la listamétodos o propiedades del objeto Application en el explorador de objetos de Visual Basic. la mayoría de las funciones de hoja de cálculo que no están disponibles como métodos del objetoApplication tienen un operador o función integrado de Microsoft Visual Basic. Por ejemplo, la función de hoja de cálculo residuo no está disponible como método del objeto Application porque hay un operador mod equivalente integrado en Visual Basic. Un operador de Visual Basic funciona más rápido que una función de Microsoft Excel en un módulo de Visual Basic.

Funciones de hoja de cálculo de Excel disponibles como métodos en Visual Basic

Nota: en los pasos siguientes se supone que ha instalado el archivo de ayuda de Visual Basic. Para mostrar una lista de todas las funciones de hoja de cálculo de Microsoft Excel que están disponibles como métodos del objeto Application en Visual Basic, siga estos pasos:
  1. En el editor de Visual Basic, escriba funciones de hoja de cálculo en el ayudante de Microsoft Office y, a continuación, haga clic en Buscar.
  2. En la lista de temas, haga clic en lista de funciones de hoja de cálculo disponibles para Visual Basic.
Para localizar el operador o la función equivalente de Visual Basic de una función de hoja de cálculo de Microsoft Excel que no está disponible como método de objeto de aplicación , siga estos pasos:
  1. En el editor de Visual Basic, escriba el nombre de la función o del operador en el ayudante de Office y, a continuación, haga clic en Buscar. Por ejemplo, escriba mod.
  2. En la lista de temas, haga clic en el tema de la función o del operador. Por ejemplo, haga clic en el tema del operador mod .
La tabla siguiente contiene funciones de hoja de cálculo que no están disponibles como métodos del objeto Application . La columna equivalente en Visual Basic enumera las funciones que se pueden usar para producir resultados iguales a los resultados que las funciones devuelven (o similares).
   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: la función hoja de cálculo de Microsoft Excel y el operador o la función equivalentes de Visual Basic no siempre se calculan de la misma manera y pueden dar distintos resultados, incluso cuando tienen el mismo nombre. Es preferible usar el operador o la función equivalente de Visual Basic para obtener una mayor velocidad y flexibilidad en los cálculos. Además, el operador o la función de Visual Basic está disponible para todas las aplicaciones que usan Microsoft Visual Basic para aplicaciones. aunque se recomienda usar los operadores o las funciones de Visual Basic que se muestran en la lista anterior, hay métodos alternativos para usar las funciones de hoja de cálculo en una macro de Visual Basic si es necesario. A modo de ejemplo, puede usar la hoja de cálculo atan en la macro de Visual Basic con las funciones ExecuteExcel4Macro o evaluar :
   x = Application.ExecuteExcel4Macro("Atan(12)") 
O bien
   x = Application.Evaluate("Atan(12)")