vacias vacia ultima seleccionar pegar para obtener macro hasta fila datos cual con celdas celda buscar activa excel vba excel-vba

vacia - obtener ultima fila con datos vba excel



La última celda no vacía en la fila; Excel VBA (2)

He ampliado mi comentario anterior para proporcionar soluciones que

  • no use Select
  • abastecerse de la última celda en la fila 1 en uso
  • atender a toda la fila estando vacía
  • abastece toda la fila llena

El método Find en el segundo código es un método mucho más directo para establecer la primera celda no en blanco

Esta línea Set rng1 = ws.Rows(1).Find("*", ws.[a1], xlValues, , xlByColumns, xlPrevious) dice, comience en la celda A1 de la Hoja "DTCa" y mire hacia atrás (es decir, desde el último celda en la fila 1) en la fila 1 por columna en busca de cualquier cosa (el * ). Este método encuentra el último en blanco o no devuelve Nothing , es decir, una fila vacía

usando xltoLeft con controles específicos

Sub Method1() Dim ws As Worksheet Dim rng1 As Range Set ws = Sheets("DTCs") If ws.Cells(1, Columns.Count) = vbNullString Then Set rng1 = ws.Cells(1, Columns.Count).End(xlToLeft) If rng1.Column <> 1 Then ''return last used cell MsgBox "rng1 contains " & rng1.Address(0, 0) Else If ws.[a1] = vbNullString Then MsgBox ws.Name & " row1 is completely empty", vbCritical Else ''true last used cell is A1 MsgBox "rng1 contains " & rng1.Address(0, 0) End If End If Else ''last cell is non-blank MsgBox ws.Cells(1, Columns.Count) & " contains a value", vbCritical End If End Sub

recomendado

Sub Method2() Dim ws As Worksheet Dim rng1 As Range Set ws = Sheets("DTCs") Set rng1 = ws.Rows(1).Find("*", ws.[a1], xlFormulas, , xlByColumns, xlPrevious) If Not rng1 Is Nothing Then MsgBox "rng1 contains " & rng1.Address(0, 0) Else MsgBox ws.Name & " row1 is completely empty", vbCritical End If End Sub

Tengo una hoja de Excel en la que necesito encontrar la última celda no vacía en una columna específica.

¿Cómo hago esto?

A continuación, seleccionaré esto para mí, pero seleccionará la primera celda no vacía, necesito la última celda no vacía en la fila.

Worksheets("DTCs").Range("A29").End(xlToRight).Select


Creo que podría funcionar simplemente buscar desde la otra dirección, así que algo así como:

Worksheets("DTCs").Range("IV29").End(xlToLeft).Select

Aunque tal vez el IV necesitaría ser cambiado a otra cosa dependiendo de la versión de Excel (esto parece funcionar en 2003).