返回当前(活动)单元格地址的Excel公式

bvk5enib  于 2023-04-07  发布在  其他
关注(0)|答案(4)|浏览(324)

我在写一个Excel公式例如,我在单元格A5中有一个查找函数,它引用了一个具有3行2列的查找表,我需要一个公式=vlookup(activecell, A1:B3, 2, 0),这样当我单击单元格A2时,然后单元格A5中的查找公式将显示单元格B2的内容。我似乎不能找到我应该使用的“activecell”。我已经尝试了row()address(row(), column()),间接的组合,但我不能得到神奇的组合。提前感谢任何帮助!

nnsrf1az

nnsrf1az1#

手动(F9)或自动获取当前选定单元地址https://excel.tips.net/T002302_Displaying_the_Selected_Cells_Address.html
作者:艾伦Wyatt
Excel允许您通过检查公式栏左侧的“名称”框的内容,轻松查看当前选定单元格的位置。这很好,但有时您希望单元格中实际包含单元格的地址。例如,您可能希望单元格A1包含当前选定单元格的地址。这意味着如果选定单元格E4,则A1将包含其地址,即$E$4。如果您按向右箭头键,则A1的内容将更改为$F$4。
要返回当前选定单元格的地址,必须使用宏。以下宏将返回运行时选定单元格的值:

Public Function CurrentCell() As String
    Application.Volatile
    CurrentCell = ActiveCell.Address
End Function

包含Application.Volatile方法意味着每次重新计算工作表时,此函数(宏)再次运行。要使用宏,您可以将以下内容放置在任何所需的单元格中,包括A1:=CurrentCell。您应该注意,此宏不会导致A1的内容在每次移动到不同的单元格时都发生更改。同样,A1的内容将仅在重新计算工作簿时更改,通过更改工作表中的某些内容或按F9。
相反,如果您需要一个“实时”版本,在所选单元格更改时自动更新A1,则可以按照以下步骤操作:
按Alt+F11显示VBA编辑器。在“工程”窗口中,在编辑器的左侧,双击正在使用的工作表的名称。(您可能需要先打开VBAProject文件夹,然后打开其下的Microsoft Excel Objects文件夹。)在工作表的代码窗口中,单击对象下拉列表并选择工作表。执行此操作时,Procedure应更改为SelectionChange,事件处理程序的框架应出现在代码窗口中。更改事件处理程序,使其显示如下:

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
    Range("A1").Value = ActiveCell.Address
End Sub

关闭VBA编辑器。现在,当您在这张工作表上移动时,A1的内容应该会不断更新以反映您的位置。

ggazkfy8

ggazkfy82#

我不认为有任何Excel函数/公式以您所期望的方式给出活动单元格的地址。
但是,有一个解决方法,您需要尝试。
尝试编写一个事件宏,它将获取所单击的单元格(当前单元格)的地址,然后用该地址更新特定单元格。然后,您的公式可以从该特定单元格中获取粘贴的地址并在公式中使用它。
给予看,应该可以的。

xzlaal3s

xzlaal3s3#

谢谢Rajesh.是的,这应该工作,但我正在寻找一个公式,这将不需要VBA,但显然不存在.我已经能够来最接近=INDIRECT(CELL(“ADDRESS”)),但它不会自动刷新;它需要按F9或其他一些导致重新计算的操作。太糟糕了,MS没有包括一个简单的函数,如=ACTIVECELL()。

f5emj3cl

f5emj3cl4#

这个对我有用,给予看
子解()
在此处变暗为字符串

Here$ = ActiveCell.Address

'从单元格b19到B699工作如果这里$〈=范围(“B18”)。地址或这里$〉=范围(“B700”)。地址然后范围(“A3”)=“否”否则范围(“A3”)=这里$结束如果结束子

相关问题