移至下一個新內容的捷徑 (Excel)

移至下一個新內容的捷徑 (Excel)

我想知道是否有快捷方式可以移動到並選擇行或列中與當前單元格內容相同的最後一個單元格。即 ctrl + 箭頭移動到資料數組的邊緣,但我想移動並理想地選擇全部,到相同顯示內容的數組的邊緣(即相同的結果,但不一定是相同的公式) 。

例如,我有一列包含 100 個帶有“1”的單元格,然後是 100 個帶有“2”的單元格,然後是 100 個帶有“3”的單元格。如果我選擇了其中一個帶有“2”的單元格,快捷方式將選擇最後一個帶有“2”的單元格,就在“3”之前。

如果答案可以處理儲存格顯示結果和儲存格內容之間的差異(即顯示「2」的列的儲存格實際上有表示「=1+1」和「=」的儲存格,那就太好了3-1”)。

答案1

Excel 中沒有內建這樣的函數,但您可以建立一個。

Excel 2010 鍵盤快速鍵,Excel 2013 鍵盤快速鍵,Excel Online 鍵盤快速鍵

要模擬您想要的任何鍵盤快捷鍵,您可以使用 VBA 使用應用程式.OnKey將鍵盤組合指派給巨集的方法。想法如下: 在 Workbook_Open 事件中,將鍵盤指令指派給巨集 在 Workbook_BeforeClose 事件中,將相同的指令指派給空(重設為預設值) 在模組中,寫要為這些鍵盤指令執行的子程式

現在,每當您開啟工作簿時,您選擇的鍵盤命令都會執行巨集,從而執行您想要的操作。這不僅適用於在紙張上移動。在我的範例中,我為向下和向上分配了 CTRL+D 和 CTRL+U 鍵,但您可以選擇對您最有意義的鍵。如果您希望這些鍵盤命令適用於每個文件,前提是相同的,只是您將它們保存在個人巨集工作簿中。

我不知道如何附加文件,所以這是程式碼。 (請注意,此程式碼很粗糙且快速。我想要最簡單的範例,而不是最健壯的程式碼。)

在“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

在模組中:

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

相關內容