varias usar texto separadas seleccionar rango para macro intercaladas funciones formato datos contiene condicional como cierto celdas celda basico excel vba excel-vba excel-formula excel-2010

usar - funciones de excel



Pasa a través de mis filas y elimina la fila si 2 celdas contienen algún valor (2)

Nada en absoluto mal con la solución user3598756 en absoluto. Solo proporcionando algo que es un poco más robusto y quizás más adaptable

Déjame saber lo que piensas:

Option Explicit Dim n As Long Dim i As Long Sub DeleteRows() n = Sheets("Sheet1").Cells(Rows.Count, "A").End(xlUp).Row For i = 4 To n Select Case Cells(i, 1) Case Is <> vbNullString Select Case Cells(i, 2) Case Is <> vbNullString Cells(i, 1).EntireRow.Delete End Select End Select Next i End Sub

IMAGEN

Me gustaría hacer esto como un ciclo for que itere y compare A1 con B1 si ambos contienen un valor detele otrow skip y salte a la siguiente fila y compare A2 con B2, A3 con B3 y así hasta aproximadamente 100.

Puedes ver en mi IMAGEN de ejemplo, como A4 contiene un valor pero B4 no lo omite, A5 y B5 lo mismo, pero A6 y B6 Ambos contienen un valor por lo que me gustaría eliminar la fila y continuar :)

Sub Empty_cell() Dim score1 As Integer, score2 As Integer, result As String, col As Integer, RangeStr1 As String, RangeStr2 As String col = 4 Let RangeStr1 = "A" & col & "" Let RangeStr2 = "B" & col & "" score1 = Range(RangeStr1).Value score2 = Range(RangeStr2).Value If score1 >= 0 & score2 >= 0 Then Range(RangeStr1 & ":" & RangeStr2).Delete MsgBox "Deleted" Else MsgBox "Failed" col = col + 1 '' MsgBox col End If End Sub


puedes hacerlo con una declaración de un trazador de líneas:

Range("A4", Cells(Rows.count, "A").End(xlUp)).SpecialCells(xlCellTypeConstants, xlNumbers).Offset(, 1).SpecialCells(xlCellTypeConstants, xlNumbers).EntireRow.Delete

dónde:

  • Range("A4", Cells(Rows.count, "A").End(xlUp))

    hace referencia a todas las celdas de la columna A desde la fila 4 hasta la última, no vacía

  • .SpecialCells(xlCellTypeConstants, xlNumbers)

    selecciona todas las celdas de rango referenciadas con un número

  • .Offset(, 1).

    los desplazamientos que resultan oscilan una columna a la derecha (es decir, a las celdas correspondientes de la columna B)

  • .SpecialCells(xlCellTypeConstants, xlNumbers)

    selecciona estas últimas celdas de rango referenciadas con un número

  • .EntireRow.Delete

    finalmente elimina la fila de las celdas resultantes