Acceso directo para pasar al siguiente contenido nuevo (Excel)

Acceso directo para pasar al siguiente contenido nuevo (Excel)

Me gustaría saber si hay un acceso directo para moverme y seleccionar la última celda de una fila o columna con el mismo contenido que la celda actual. Es decir, Ctrl + flecha se mueve al borde de la matriz de datos, pero me gustaría moverme, e idealmente seleccionar todo, al borde de una matriz con el mismo contenido mostrado (es decir, los mismos resultados, pero no necesariamente la misma fórmula). .

Por ejemplo, tengo una columna con 100 celdas con "1", seguida de 100 celdas con "2" y luego 100 celdas con "3". Si seleccioné una de las celdas con "2", el acceso directo seleccionaría la última celda con "2", justo antes del "3".

Sería fantástico si la respuesta pudiera abordar las diferencias entre el resultado mostrado de las celdas y el contenido de las celdas (es decir, las celdas de la columna que muestran "2" en realidad tienen celdas que dicen "=1+1" y "= 3-1").

Respuesta1

No existe una función de este tipo integrada en Excel, pero se puede crear una.

Atajos de teclado de Excel 2010,Atajos de teclado de Excel 2013,Atajos de teclado en línea de Excel

Para simular cualquier método abreviado de teclado que desee, puede usar VBA usando elAplicación.OnKeyMétodo para asignar una combinación de teclado a una macro. La idea es la siguiente: En el evento Workbook_Open, asigna comandos de teclado a macros. En el evento Workbook_BeforeClose, no asigna los mismos comandos a nada (restablecer los valores predeterminados). En un módulo, escribe las subrutinas que deseas ejecutar para esos comandos de teclado.

Ahora, cada vez que abra el libro, los comandos de teclado seleccionados ejecutarán macros que harán lo que usted desee. Esto es bueno para mucho más que simplemente moverse por la sábana. En mi ejemplo, asigné las teclas CTRL+D y CTRL+U para Abajo y Arriba, pero tú eliges lo que tenga más sentido para ti. Si desea que estos comandos de teclado funcionen para todos los archivos, la premisa es la misma excepto que los guarda en su libro de macros personal.

No sé cómo adjuntar archivos, así que aquí está el código. (Tenga en cuenta que este código es aproximado y rápido. Quería el ejemplo más simple, no el código más sólido).

En el objeto "Este libro de trabajo":

Private Sub Workbook_Open()
    Application.OnKey "^d", "findLastOfThis"
    Application.OnKey "^u", "findFirstOfThis"
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Application.OnKey "^d"
    Application.OnKey "^u"
End Sub

En un módulo:

Option Explicit
Private Sub findLastOfThis()
    Dim val As Variant
    Dim r As Long, c As Long
    val = ActiveCell.Value
    c = ActiveCell.Column
    For r = ActiveCell.Row To ActiveSheet.UsedRange.Rows.Count
        If Cells(r, c).Value <> val Then Exit For
    Next
    r = r - 1
    Cells(r, c).Activate
End Sub

Private Sub findFirstOfThis()
    Dim val As Variant
    Dim r As Long, c As Long
    val = ActiveCell.Value
    c = ActiveCell.Column
    For r = ActiveCell.Row To 1 Step -1
        If Cells(r, c).Value <> val Then Exit For
    Next
    r = r + 1
    Cells(r, c).Activate
End Sub

información relacionada