作者:王延霞之歌 | 来源:互联网 | 2023-05-18 11:36
我有一个很长的(2,000 +行)不同值列表.我试图找到每个值的第一行和最后一行.作为示例(注意:所有数据都在一列中):
Bats
Bats
Bats
Bats
Bats
Bats
Fun
Fun
Fun
Fun
Bases
Bases
Bases
Bases
Bases
Bases
Bases
Bases
Bases
Bases
Bases
Balls
Balls
Balls
Balls
Balls
Balls
Balls
Balls
所以,我想知道找到第一行(从顶部开始)和包含每个单词的最后一行的最快方法是什么.因此,蝙蝠从第1行开始,在第6行结束.乐趣从第7行开始,在第10行结束.
除了我将每个单元格与之前的单元格进行比较的循环之外,还有更快速的方法可以实现这一点,如果它们不同,可以添加行变量吗?
非常感谢任何建议/帮助!
编辑:在VBA中查找如何执行此操作.
1> BruceWayne..:
我想通了 - VBA风格.我可以使用find()来帮助:
Dim batStartRow as Long, batEndRow as Long
With Sheets("Sheet1")
batStartRow = .Range("A:A").Find(what:="bats", after:=.Range("A1")).Row
batEndRow = .Range("A:A").Find(what:="bats",after:=.Range("A1"), searchdirection:=xlPrevious).Row
End With
然后用其他单词替换"bats",它会起作用.
编辑:您可能还需要添加LookIn:=xlValues
限定符,具体取决于搜索的信息/数据.
2> 小智..:
如果值已经分组,您可以使用以下内容查找第一个Row事件
=MATCH("Bats",A:A,0)
这样可以找到最后一次出现的行
=(MATCH("Bats",A:A,0)+(COUNTIF(A:A,"Bats"))-1)
并用你想要查找的每个不同的值替换"蝙蝠".