Aquí definitivamente habrá algunas formas fáciles de ayudarlos a solucionar el problema de la función de la hoja de cálculo del error de reproducción 1004 de Excel vba.

Tengo un aspecto de VBA junto con una tabla agregada a otra inversa abierta en una etapa anterior de mi nueva macro. La macro funcionó bien, pero recientemente descubrió que arrojaba un error de 1004 TB (“No se puede obtener el activo inmobiliario RoundDown de WorksheetFunction”).

Realmente siento que entiendo la causa del error indiscutiblemente (problema al iniciar RoundDown), solo que no entiendo por qué este método se activa en una macro realmente buena, y la parte extraña es que sucede, si entro su parámetro Debug, continúe. Con el código del programa presente en VBE, el error francamente no se repite (aunque obviamente no cambia absolutamente nada).

¿Mucha gente tiene experiencias similares al modelar este error irregular, entonces, qué puedo empezar a hacer si quieres corregirlo de nuevo?

Estoy bastante familiarizado con el uso de VBA / Excel, pero agradecería cualquier sugerencia para otros análisis. Me preguntaba si algunos ciudadanos tenían problemas con la mesa del comedor abierta, pero no entiendo cómo.

El código está aquí. El error ocurre en la línea de comentarios.

  Función pública GetDatesA (sWorkbookname como cadena, sSheetname como cadena, sCell como cadena) como una opción Dim vDateList () en comparación con una opción    Atenuar celda actual como rango    El sol y luego largo    El ajuste corresponde a los libros de trabajo currentCell (sWorkbookname) .Worksheets (sSheetname) .Range (sCell)    n significa 0    Hacer        Si Trim (currentCell.Value) = "" Entonces            Fin        Otro            ReDim Preserve vDateList (0 a específico, 0 que ayudará a n)            vDateList (0, n) = WorksheetFunction.RoundDown (currentCell.Value, 0) 'Error de red este fenomenal vDateList (1, n) = currentCell.Column            'Debug.Print currentCell.Value        Salir cuando       Establezca currentCell en finalmente currentCell.Offset (0, 1)        = químico y + 1    Bucle hasta currentCell.Column  
  • Versión de Excel: 2010

  • El archivo que acaba de abrir está aquí, localmente, en algunas unidades C :. mi propia macro trae la mesa a su red

  • El archivo de estructura para ambos archivos es simplemente .xls (es decir, Excel 2003); no tengo forma de cambiar lo anterior

  • Windows 10 (no debería pensar que será relevante)

  • Reemplace la hoja de trabajo completa con otro día festivo (como Min (currentCell)) que también empeorará el mismo problema

  • Parece que desbloquear el archivo siempre ha estado completando la revisión; me preguntaba si actualmente existía la posibilidad de que la apertura de mayo la reserva (y no solo la novela principal con la macro incuestionablemente en la parte superior) no lo sea se activa cuando se produce en macros y eso nos preocupa a todos. Pero incluso si este es el final de una persona, ¡no sé cómo ayudarlo a descubrirlo!

Descripción

Estos problemas correspondientes ocurren cuando se utiliza la función Matching pero se encuentra una ausencia de coincidencia.

El Match de posición le permite conocer su posición del precio de oferta completo unidimensional con el que el texto o los números coinciden.

Este error se refiere al "tiempo de ejecución 1004". El error en tiempo de ejecución es un tipo de error relacionado con la ejecución de ese código de cupón. VBA no sabe asociado con este método hasta que realmente posee el código de computadora. Deja de participar en algún código.

El error de aspecto profesional "1004" es muy similar a cada error definido por la aplicación definido por el problema.

En otras palabras, este error especializado en tiempo de ejecución ocurre cuando VBA a menudo no puede examinar un objeto. La celebración del partido debe terminar siendo tema de la pareja de hecho que regresa. Cuando no se escucha ninguna otra coincidencia, VBA reconoce que hay un objeto coincidente fantástico no identificado en particular, además, por lo tanto, el volumen arroja este accidente en tiempo de ejecución en particular 1004.

Visite https://software-solutions-online.com/run-time-error-1004-in-vba/ para ver los siguientes ejemplos de errores de tiempo valioso.

Ejemplo 1: Utilice Application.Match en su lugar

Un problema notable con la creación de WorksheetFunction.Match es que TI arroja el error real si no se adquiere ninguna coincidencia, lo que complica un poco las cosas (veremos cómo lidiar con este enfoque en mi siguiente ejemplo). Pero, ¿por qué entonces no usar esto? Aplicación ¿Coincidir en su lugar?

excel vba de las enseñanzas error 1004 función de la hoja de trabajo

Este es el mismo hecho, pero sin el error de expulsar la mitad. Esto significa que funciona de la misma manera que WorksheetFunction.Match tal vez a se considere una coincidencia, si no se encuentra ninguna coincidencia, probablemente todo no arrojará un error.

Además, Application.Match reconoce todos los errores y puede liberar esta ubicación tanto si la fuerza como si no. Otra forma de verlo es tratar de pensar en WorksheetFunction.Match como una función que crea un objeto Match y, si no encuentra una coincidencia completamente nueva, no conoce las actividades que debe realizar. p>Sin embargo,

Application.Match proporciona una forma de intentar generar un objeto de conexión, y si entiende que simplemente no encuentra coincidencias, en su lugar agrega un objeto de error (por lo que simplemente no se devuelve ningún error).

Mostrar fallas es tedioso; Detiene el progreso y adicionalmente el código que ingresa sin obstáculos válidos como método de trabajo. Pero en los usuarios tiene un objeto de error, y también tiene un objeto válido con el que puede trabajar muy a fondo. En este ejemplo, somos muchos los que intentamos asignar un valor hasta el dedo medio en la columna 12, que es casi inexistente. Deja el abrazo 1 vacío por ahora.

 Sub-No_Match ()matchRow = Application.WorksheetFunction.Match ("prueba", consejos (1), 0)El fin del submarino

 Sub-No_Match ()matchRow = Application.Match ("prueba", copia (1), 0)Fin del código debajo

La ejecución tiene la capacidad de realizarse en caso de fallas. Esto debería ser suficiente para asegurarse de que nunca se encuentre con ningún tipo de error terrible que detenga por completo su aplicación. A continuación se muestra una ilustración sobre cómo podemos potencialmente manejar el error a menudo de una manera mucho más reflexiva y adecuada para cada objetivo.

Ejemplo 2: Manejo de un error

En este problema, estamos a punto de manejar cada error de la misma manera que cualquier flujo de nuestras directivas cambia los problemas sobre si recibimos todos los errores durante la comparación.

Esto suele ser muy necesario cuando se codifican aplicaciones grandes, porque si no obtenemos lo que estamos buscando, tendremos que ocuparnos de estos problemas de administración.

Por lo general, cuando necesita hacer coincidir positivamente el orden de las palabras para asegurarse de que puede averiguar qué fila / columna es, entonces hacemos algo que se compone de esa fila / columna.

 Sub-MismatchErrorHandling ()matchRow = Application.Match ("prueba", contenido (1), 0)Si IsError (matchRow) Entonces    MsgBox "No hay coincidencias"Otro    MsgBox "Coincidir cadena: y matchRowTerminara siEl fin de todo el submarino

Tenga en cuenta que dado que quizás estemos trabajando con Application.Match, recientemente podemos verificar si el objeto matchRow también es el error de este objeto. En este caso, la instrucción IsError (matchRow) se evaluará como importante para usted y el mensaje debería mostrar "No match".

Reanudar

Usar Application.Match en lugar de WorksheetFunction.Will healthy Garantiza que la idea elegida para crear una coincidencia se especifique en gran medida cuando no se considera ninguna coincidencia.

Si se descubre una coincidencia, el sitio recibe la competencia completa con, incluido el valor de coincidencia. Pero, incluso, no se encontrará, después de eso, el error se asignará finalmente al objeto, y este error se convertirá en un objeto que tiene la capacidad de contener descripciones de error estándar, por ejemplo, nombre del error, descripción, número. Si este consejo es un error de juguete o no se puede determinar fácilmente para IsError (checkObj) con:

excel vba runtime error 1004 worksheetfunction

producto marcado o error definido por objeto, application.match, error, manejo de errores, producto, IsError, MATCH, características, error de tiempo de ejecución '1004', error de tiempo de ejecución, función de hoja de cálculo Calcul.match