excel 从包含自身功能的列表中选取后,工作表不重新计算

yhived7q  于 2023-01-06  发布在  其他
关注(0)|答案(1)|浏览(112)

我有工作簿与用户VBA功能(返回名称的单元格):

Function cellName()
    cellName = ActiveCell.Offset(0, 0).Name.Name
    
End Function

我有一个列表 dictList,其中有3列用作字典(cellNames; ENG当量; CZ等效物)
我有一个单元格 $P$1,其中包括可以包含EN/CZ值的数据验证。
工作表中具有指定名称(=cellName)的每个单元格都包含一个函数

=VLOOKUP(cellName();dictList;IF($P$1="CZ";2;3);FALSE)

最后,每个命名的单元格根据其名称和dictlist中的vlooked值包含捷克语或英语文本。
当我将 $P$1 从CZ切换到EN或从EN切换到CZ时,出现问题。
使用VLOOKUP公式计算的值显示结果 #VALUE!,直到我在每个单元格上按F2和Enter键。
我不想在切换语言后在每个单元格上按F2+enter。
谢谢你的帮助。
卡雷尔
当我把cellName()的结果直接放到vlookup中时,它会按预期工作;当我把函数放回vlookup中时,它会再次返回#VALUE!。

rjjhvcjd

rjjhvcjd1#

使用Application.ThisCell代替ActiveCell
Range对象的形式返回从中调用用户定义函数的单元格。

Public Function cellName() As String
    cellName = Application.ThisCell.Name.Name
End Function

相关问题