如何在 Excel 中根据行列号获取单元格值?
本文将帮助您了解如何在 Excel 中利用行列号生成单元格值。本文主要介绍两种简单的方法来解决上述问题。第一个示例使用已定义的公式,即利用 INDIRECT 值生成所需的结果。第二个示例使用 VBA 代码生成相同的单元格值。编写 VBA 代码后,用户需要根据提供的方法生成函数调用。
示例 1:使用用户定义的公式在 Excel 中根据行列号获取单元格值:
步骤 1:
此工作表包含三列。第一列包含"产品名称"的数据值,第二列包含"产品年龄"的数据,第三列包含"样品编号"的数据。之后,在 H3 单元格中创建行标题,并将值 3 存储在 I3 单元格中。同样,转到单元格 H4 创建列标题,并将值 5 存储在 I4 单元格中。最后,创建 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代码计算结果,并且只有在使用适当的参数值调用定义的函数时才能起作用。
相关文章
有用资源
excel 参考教程 - 该教程包含有关 excel 的更多信息:https://www.cainiaomax.com/excel/

