Scorciatoia per passare al prossimo nuovo contenuto (Excel)


2

Vorrei sapere se esiste un collegamento in cui spostarsi e selezionare l'ultima cella di una riga o una colonna con lo stesso contenuto della cella corrente. Cioè ctrl + freccia si sposta sul bordo dell'array di dati, ma mi piacerebbe spostare, e idealmente selezionare tutto, sul bordo di un array dello stesso contenuto visualizzato (cioè gli stessi risultati, ma non necessariamente la stessa formula) .

ad es. ho una colonna con 100 celle con "1", seguita da 100 celle con "2" e quindi 100 celle con "3". Se ho selezionato una delle celle con "2", il collegamento selezionerebbe l'ultima cella con "2", appena prima di "3".

Sarebbe bello se la risposta potesse occuparsi delle differenze tra il risultato visualizzato delle celle e il contenuto delle celle (cioè le celle della colonna che mostrano "2" in realtà hanno celle che dicono "= 1 + 1" e "= 3-1" ).

Risposte:


1

Non esiste una tale funzione integrata in Excel ma potresti crearne una.

Scorciatoie da tastiera Excel 2010 , Scorciatoie da tastiera Excel 2013 , Scorciatoie da tastiera online Excel

Per simulare qualsiasi scorciatoia da tastiera desiderata, è possibile utilizzare VBA utilizzando il metodo Application.OnKey per assegnare una combinazione di tasti a una macro. L'idea è la seguente: nell'evento Workbook_Open, assegnare i comandi da tastiera alle macro Nell'evento Workbook_BeforeClose, assegnare gli stessi comandi a nulla (ripristinare i valori predefiniti) In un modulo, scrivere le subroutine che si desidera eseguire per quei comandi da tastiera

Ora, ogni volta che apri la cartella di lavoro, i comandi da tastiera selezionati faranno funzionare le macro che faranno quello che vuoi. Questo va ben oltre il semplice spostamento del foglio. Nel mio esempio, ho assegnato i tasti CTRL + D e CTRL + U per Giù e Su, ma scegli quello che ha più senso per te. Se si desidera che questi comandi da tastiera funzionino per ogni file, la premessa è la stessa, tranne per il fatto che li si salva nella cartella di lavoro macro personale.

Non riesco a capire come allegare i file, quindi ecco il codice. (Si noti che questo codice è approssimativo e veloce. Volevo l'esempio più semplice, non il codice più affidabile.)

Nell'oggetto "ThisWorkbook":

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

In un modulo:

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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.