Excel: error de tiempo de ejecución '13' Tipo de discrepancia durante la ejecución de una fila de eliminación
Frecuentes
Visto 2,909 equipos
2
¿Qué causaría esta línea?
If Cells(i, 3) = "" Or VBA.Left(Cells(i, 3), 5) = "BIGA-" Or VBA.Left(Cells(i, 3), 5) = "BRNG-" Or VBA.Left(Cells(i, 3), 5) = "ENER-" Or VBA.Left(Cells(i, 3), 5) = "EURE-" Or VBA.Left(Cells(i, 3), 5) = "STRE-" Then Rows(i).Delete
en la siguiente macro para devolver una falta de coincidencia de tipo de error de tiempo de ejecución '13' después de encontrar y eliminar el primer registro de celda?
Option Explicit
Sub deletedExceptions_row()
Dim i As Long
For i = Cells.SpecialCells(xlCellTypeLastCell).Row To 1 Step -1
If Cells(i, 3) = "" Or
VBA.Left(Cells(i, 3), 5) = "BIGA-" Or
VBA.Left(Cells(i, 3), 5) = "BRNG-" Or
VBA.Left(Cells(i, 3), 5) = "ENER-" Or
VBA.Left(Cells(i, 3), 5) = "EURE-" Or
VBA.Left(Cells(i, 3), 5) = "STRE-" Then
Rows(i).Delete
Next i
End Sub
1 Respuestas
3
Prueba esta
Option Explicit
Sub deletedExceptions_row()
Dim i As Long
Dim ws As Worksheet
On Error GoTo whoa
Set ws = Sheets("Sheet1")
With ws
For i = .Cells.SpecialCells(xlCellTypeLastCell).Row To 1 Step -1
If .Cells(i, 3) = "" Or _
VBA.Left(.Cells(i, 3), 5) = "BIGA-" Or _
VBA.Left(.Cells(i, 3), 5) = "BRNG-" Or _
VBA.Left(.Cells(i, 3), 5) = "ENER-" Or _
VBA.Left(.Cells(i, 3), 5) = "EURE-" Or _
VBA.Left(.Cells(i, 3), 5) = "STRE-" Then
.Rows(i).Delete
End If
Next i
End With
Exit Sub
whoa:
MsgBox "Value of i is " & i, vbInformation, Err.Description
End Sub
Ahora da error? Si lo hace, ¿cuál es el valor de i
. Si el valor de i
es decir 17 y luego verifique la celda C17. Estoy seguro de que hay una fórmula en esa celda que está dando un error. Por ejemplo #DIV/0!
o cualquier otro error. Es solo en este escenario que dará una type mismatch error
.
INSTANTÁNEA
contestado el 03 de mayo de 12 a las 18:05
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas vba excel or haz tu propia pregunta.
¿Cuál es el nombre de su hoja donde la está probando? Cambiaste
Set ws = Sheets("Sheet1")
al nombre de la hoja relevante? Reemplace "Hoja1" con el nombre de la hoja correspondiente. - Huida de Siddharthsí y luego me muestra que el valor i es 7178, ¿cuál era #NOMBRE? ¿Cómo modificaría esto para poder corregir el error y luego hacer que continúe? - Capnhud
Simplemente haga clic en "Aceptar" en el cuadro de mensaje. Regrese a esa celda y elimine el error y luego vuelva a ejecutar la macro :) - Huida de Siddharth
Consejo: El manejo de errores siempre hará tu vida más fácil ;) - Huida de Siddharth