Necesito extraer una línea de datos de una hoja de cálculo de Excel y transferirla a otra hoja. Necesito buscar una serie de guiones (- - - - -) y luego extraer la línea de datos que está 2 líneas debajo de los guiones.
Respuesta1
Búsqueda de Excel encontrar sintaxis
Dim rEncontrado como rango
Donde "expresión" es cualquier objeto de rango válido, por ejemplo, rango("A1:A100"), columnas(2), etc. Además, se devuelve un objeto de rango cada vez que utilizamos el método de búsqueda.
expresión.Find(Qué, Después, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SearchFormat)
Atenuar rFound como rango en caso de error Reanudar siguiente
With ActiveWorkbook.ActiveSheet
Set rFound = .Columns(1).Find(What:="- - - - -", After:=.Cells(1, 1), LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)
On Error GoTo 0
If Not rFound Is Nothing Then
Match = rFound.Address
MsgBox (rFound.Offset(2, 0))
End If
End With
Respuesta2
Usaría el complemento Power Query para esto. Puede leer datos de tablas de Excel.
Yo crearía 2 consultas. El primero agregaría una columna de índice (número de fila) y luego filtraría las filas con guiones. Luego agregaría una columna calculada simple: [Índice] + 2. Esta consulta no necesita generar una tabla.
La segunda consulta comenzaría desde la tabla base, luego se fusionaría con la primera consulta usando esa columna "[Índice] + 2" y un tipo de unión interno (solo mantendrá coincidencias). Esta consulta generaría una nueva tabla en Excel.
Puede crear casi todo esto con solo hacer clic en la interfaz de usuario de Power Query. La única fórmula necesaria sería muy simple: [Index] + 2
.