gpt4 book ai didi

excel - xlPart 与 xlWhole

转载 作者:行者123 更新时间:2023-12-04 21:26:48 27 4
gpt4 key购买 nike

我想知道 Excel VBA 在使用 xlPart 与 xlWhole 时如何优先搜索。
我的工作表中的第一行包含许多列的标题文本。根据生成此报告的人员和他们使用的设置,标题文本可以更改 - 位置和内容。出于这个原因,我使用带有“Lookat:=xlPart”的 .Find 方法来搜索我知道将始终存在的子字符串。
我遇到的问题是我想找到包含文本“Job ID”的第一列(最左边)。 A 列包含确切的文本“作业 ID”,Z 列包含文本“主作业 ID”。但是这行代码总是返回 Z 列而不是 A 列,A 列是该条件应该找到匹配的最左边的列:

Set FoundRange = Range(SearchRange).Find(What:="Job ID", LookIn:=xlValues, LookAt:=xlPart, _
SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False)
如果我将其更改为“Lookat:=xlWhole”,它将返回 A 列,因为它应该。但是为什么它没有使用“Lookat:=xlPart”在 A 列中找到匹配项?
如果我更改单元格 Z1 的内容,因此没有与“作业 ID”匹配的子字符串,那么无论我使用 xlPart 还是 xlWhole,.Find 都会正确返回 A 列。在我看来,在这种情况下它应该总是返回 A 列。
我是否缺少一些微妙之处?

最佳答案

Find 方法包括一个可选参数After .这指定了搜索开始的位置,字面上是指定单元格之后的单元格。如果未指定,则默认为搜索范围中的第一个单元格。
在您的示例中,搜索单行(第 1 行?)而不指定 After,搜索从 B1 开始.这就是它找到 Z1 的原因。第一的。
要从第一个单元格开始,请将 After 指定为搜索范围中的最后一个单元格

After:=SearchRange.Cells(SearchRange.Cells.Count)

关于excel - xlPart 与 xlWhole,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72118300/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com