Seleccione la primera celda vacía en la columna F a partir de la fila 1. (sin usar el desplazamiento)

Esta es una consulta con la que estoy realmente confundido. Porque he buscado esto muchas veces, pero siempre encuentro los códigos relacionados con la búsqueda de la última celda usada o la primera celda no vacía. Probé en los códigos a continuación. Los códigos diff se han separado por la palabra “par”

iRow = Worksheets("Sheet1").Cells(Rows.Count,1).End(XlUp).Row 

incluso

 Sub LastCellBeforeBlankInColumn() Range("A1").End(xldown).Select End Sub 

incluso

Encuentra la última celda utilizada en una columna:

 Sub LastCellInColumn() Range("A65536").End(xlup).Select End Sub 

incluso

Encuentra la última celda, antes de un espacio en blanco en una fila:

 Sub LastCellBeforeBlankInRow() Range("A1").End(xlToRight).Select End Sub 

incluso

Encuentra la última celda utilizada en una fila:

 Sub LastCellInRow() Range("IV1").End(xlToLeft).Select End Sub 

incluso

 Worksheets("Sheet1").Range("A1").End(xlDown).Row + 1 

incluso

 LastRow = Range("A" & Rows.Count).End(xlUp).Row + 1 Sheets("SheetName").Range("A" & LastRow).Paste 

incluso

 Dim FirstBlankCell as Range Set FirstBlankCell=Range("A" & rows.Count).end(xlup).offset(1,0) FirstBlankCell.Activate 'Find the last used row in a Column: column A in this example Dim LastRow As Long Dim NextRow As Long With ActiveSheet LastRow = .Cells(.Rows.Count, "F").End(xlUp).Row End With NextRow = LastRow + 1 

Si todo lo que intenta hacer es seleccionar la primera celda en blanco en una columna determinada , puede probar esto:

Código:

 Public Sub SelectFirstBlankCell() Dim sourceCol As Integer, rowCount As Integer, currentRow As Integer Dim currentRowValue As String sourceCol = 6 'column F has a value of 6 rowCount = Cells(Rows.Count, sourceCol).End(xlUp).Row 'for every row, find the first blank cell and select it For currentRow = 1 To rowCount currentRowValue = Cells(currentRow, sourceCol).Value If IsEmpty(currentRowValue) Or currentRowValue = "" Then Cells(currentRow, sourceCol).Select End If Next End Sub 

Antes de la selección: primera celda en blanco para seleccionar:

enter image description here

Después de la selección:

enter image description here

En caso de que alguien tropiece con esto como yo lo acabo de …

Encuentra la primera celda en blanco en una columna (estoy usando la columna D pero no quería incluir D1)

 NextFree = Range("D2:D" & Rows.Count).Cells.SpecialCells(xlCellTypeBlanks).Row Range("D" & NextFree).Select 

NextFree es solo un nombre, podrías usar salchichas si lo deseas.

El código de Sam es bueno, pero creo que necesita alguna corrección,

 Public Sub SelectFirstBlankCell() Dim sourceCol As Integer, rowCount As Integer, currentRow As Integer Dim currentRowValue As String sourceCol = 6 'column F has a value of 6 rowCount = Cells(Rows.Count, sourceCol).End(xlUp).Row 'for every row, find the first blank cell and select it For currentRow = 1 To rowCount currentRowValue = Cells(currentRow, sourceCol).Value If IsEmpty(currentRowValue) Or currentRowValue = "" Then Cells(currentRow, sourceCol).Select Exit For 'This is missing... End If Next End Sub 

Gracias

Si todo lo que intenta hacer es seleccionar la primera celda en blanco en una columna determinada, puede probar esto:

 Range("A1").End(xlDown).Offset(1, 0).Select 

Si lo está utilizando en relación con una columna que ha seleccionado, esto funciona:

 Selection.End(xlDown).Offset(1, 0).Select 

Si busca un trazador de líneas uno (sin incluir designaciones y comentarios) intente esto

 Dim iRow As Long Dim ws As Worksheet Set ws = Worksheets("Name") 'find first empty cell in column F (coming up from the bottom) and return row number iRow = ws.Range("F:F").Find(What:="*", SearchOrder:=xlRows, SearchDirection:=xlPrevious, LookIn:=xlValues).Row + 1 

Adapté un poco el código de todos, lo hice en una función, lo hice más rápido (matriz) y agregué parámetros:

 Public Function FirstBlankCell(Optional Sh As Worksheet, Optional SourceCol As Long = 1, Optional ByVal StartRow& = 1, Optional ByVal SelectCell As Boolean = False) As Long Dim RowCount As Long, CurrentRow As Long Dim CurrentRowValue As String Dim Data() If Sh Is Nothing Then Set Sh = ActiveSheet With Sh rowCount = .Cells(.Rows.Count, SourceCol).End(xlUp).Row Data = .Range(.Cells(1, SourceCol), .Cells(rowCount, SourceCol)).Value2 For currentRow = StartRow To RowCount If Data(currentRow, SourceCol) = vbNullString Then If SelectCell Then .Cells(currentRow, SourceCol).Select 'if selection is out of screen, intead of .select , use : application.goto reference:=.cells(...), scroll:= true FirstBlankCell = currentRow Exit For End If Next End With ' Sh Erase Data Set Sh = Nothing End Function 
 Public Sub SelectFirstBlankCell() Dim sourceCol As Integer, rowCount As Integer, currentRow As Integer Dim currentRowValue As String sourceCol = 6 'column F has a value of 6 rowCount = Cells(Rows.Count, sourceCol).End(xlUp).Row 'for every row, find the first blank cell and select it For currentRow = 1 To rowCount currentRowValue = Cells(currentRow, sourceCol).Value If IsEmpty(currentRowValue) Or currentRowValue = "" Then Cells(currentRow, sourceCol).Select End If Next End Sub 

Si alguna columna contiene más de una celda vacía continuamente, entonces este código no funcionará correctamente

Esta es una forma muy rápida y limpia de hacerlo. También admite columnas vacías, ya que ninguna de las respuestas anteriores funcionaba para las columnas vacías.

Uso: SelectFirstBlankCell("F")

 Public Sub SelectFirstBlankCell(col As String) Dim i As Integer Dim NextCell As Integer For i = 1 To 10000 If Range(col & CStr(i)).Value = "" Then NextCell = i Exit For End If Next i Range(col & CStr(i)).Select End Sub