如何在 Excel 中根據行號和列號獲取單元格的值?


本文將向用戶介紹利用 Excel 中的行號和列號生成單元格值的流程。本文的主要目的是描述兩種簡單的解決此任務的方法。在第一個示例中,使用了已定義的公式,即透過利用 INDIRECT 值,使用者可以生成所需的結果。另一方面,第二個示例是使用 VBA 程式碼生成相同的單元格值。編寫 VBA 程式碼後,使用者需要從提供的方法中生成函式呼叫。

示例 1:使用使用者定義公式在 Excel 中根據行號和列號獲取單元格值

步驟 1

此工作表包含三列。第一列包含“產品名稱”的資料值,第二列包含“產品年齡”的資料,第三列包含“樣本編號”。然後在 H3 單元格中為行建立標題,並在 I3 單元格中儲存值為 3。類似地,轉到 H4 單元格,建立列標題,並在 I4 單元格中儲存值為 5。最後,在 H5 單元格中建立標題“結果”。結果值將儲存到 I5 單元格中。請參考下方提供的快照。

步驟 2

轉到 I5 單元格,鍵入或貼上公式“=INDIRECT(ADDRESS(I3,I4))”。請參考下方提供的詳細快照。

上述公式的解釋

  • ADDRESS 函式接受兩個引數:單元格的行號和列號,並返回一個表示該單元格在 A1 樣式表示法中的地址的文字字串。在本例中,行號由 I3 單元格中的值給出,列號由 I4 單元格中的值給出。例如,如果 I3 包含值 5,I4 包含值 7,則 ADDRESS 函式的結果將是文字字串“G5”。

  • INDIRECT 函式接受一個文字字串引數,該引數表示對 Excel 中的單元格或單元格區域的引用,並返回該單元格或區域的值。在本例中,表示單元格引用的文字字串是從 ADDRESS 函式獲得的,如上所述。因此,如果 ADDRESS 函式的結果是“G5”,則 INDIRECT 函式將返回列 G 和行 5 中單元格的值。

總之,公式 INDIRECT(ADDRESS(I3,I4)) 返回由 I3 和 I4 單元格中分別指定的行號和列號指定的單元格的值。這在您希望使用由工作表中其他單元格確定的動態行號和列號來引用單元格的情況下非常有用。

步驟 3

鍵入公式後,按“Enter”鍵以獲得所需的結果。

最終獲得的結果包含第 3 行和第 5 列的樣本編號,即生成的結果為 SMP1。

示例 2:使用 VBA 程式碼在 Excel 中根據行號和列號獲取單元格值

步驟 1

此工作表包含三列。第一列包含“產品名稱”的資料值,第二列包含“產品年齡”的資料,第三列包含“樣本編號”。請參考下方提供的快照。

步驟 2

要開啟 VBA 的程式碼編輯器,請轉到“開發工具”選項卡,然後在“程式碼”部分下選擇“Visual Basic”選項。請參考下方提供的快照。

步驟 3

上述步驟將開啟一個“Microsoft Visual Basic for Applications”對話方塊。

步驟 4

轉到選單欄,然後單擊“插入”。然後單擊“模組”。請參考下方提供的快照。

步驟 5

上述步驟將開啟一個空白程式碼區域,如下所示。

步驟 6

將下方提供的程式碼複製到程式碼視窗。

' function header
Function get_val(r As Integer, c As Integer)
    ' retrieving data from a provided location
    get_val = ActiveSheet.Cells(r, c)
' end of the function header
End Function 

使用正確的程式碼縮排以避免編碼錯誤。程式碼快照如下所示,請使用它進行完整且精確的程式碼編寫。

步驟 5

宣告函式模組後,按“Alt + Q”組合鍵退出當前對話方塊。在 Excel 表格中,編寫公式“=get_val(I3,I4)”以生成可能的結果。這裡,get_val 是函式名稱,I3 和 I4 是 Excel 表格的單元格引用。

步驟 6

生成的結果值為 SMP1。請參考下方提供的圖片。

結論

本文包含兩個示例的說明。這兩個示例將執行相同的任務,並且可以根據提供的行號和列值生成相同的樣本編號。它們之間唯一的區別在於方法。第一個示例使用公式計算資料,而第二個示例基於提供的 VBA 程式碼計算結果,並且僅在定義的函式以正確的引數值被呼叫時才能工作。

更新於:2023年5月22日

10K+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

立即開始
廣告