excel - 在单元格中查找公式结果的函数
问题描述
我正在尝试查看 F 列并找到数字 9999 以返回单元格引用。
仅当在 F 列中输入数字 9999 时,我的代码才会返回此数字所在的单元格。
F 列是公式驱动的,数字 9999 是公式背后逻辑的结果。
Dim foundRng as Range
Set foundRng = Range ("F1:F2000").Find("9999")
If foundRng is Nothing then
MsgBox "Value not found"
Else
MsgBox foundrng.Address
End if
End Sub
解决方案
该Find
函数具有许多属性。其中大部分是由 Excel 自动设置的,具体取决于上次使用情况。即使您上次Find
手动使用,Excel 也会记住您上次的设置。因此,您应该在使用 VBA 时设置所有相关属性。
Sub FindCell()
Dim foundRng As Range
Set foundRng = Range("F1:F2000").Find(What:="9999", _
After:=Cells(2000, "F"), _
LookIn:=vbValues, _
LookAt:=xlWhole, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False)
If foundRng Is Nothing Then
MsgBox "Value not found"
Else
MsgBox foundRng.Address
End If
您的问题的可能来源是LookIn
我怀疑您的系统当前使用的属性xlFormulas
(它在xlValues
上面)。当单元格具有硬值时,例如9999
,其公式和值是相同的。但是如果formla的=3*3333
值和公式不同,9999就不会出现在公式中。
另一个值得一提的是After
房产。Excel 在指定单元格之后的单元格中开始搜索(默认情况下为范围中的第一个单元格)。之后的下一个单元格由SearchDirection
属性指定(上面xlNext
,可能是xlPrevious
)。该函数将遍历整个范围。因此,通过将最后一个单元格指定为after和xlNext
direction,搜索实际上将从第一个单元格开始,而如果指定第一个单元格,After
它实际上将是要检查的最后一个单元格。
推荐阅读
- php - laravel 检查数量是否在数据库中的两列之间
- jupyter-notebook - 在 jupyter hub 中设置环境变量
- c++ - 用于向量连接的 std::make_move_iterator 与 std::move
- python - quadpy.quad(数值积分)和 TensorFlow 的内存泄漏
- ios - 隐式展开 Optional 值时意外发现 nil 的原因
- git - Azure DevOps 中是否存在与同时触发的拉取请求的合并冲突以及如何处理它们?
- javascript - Javascript中数字和整数之间的区别(我认为整数存在是因为parseInt)
- postgresql - 如何为多租户 Web 应用程序动态创建模式/表
- python - 确定 H2O 随机森林模型的准确度、精确度、召回率和 F 分数
- palantir-foundry - 如何在 palantir Foundry 中使用配置文件生成动态文件