我有一个很长的(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
Run Code Online (Sandbox Code Playgroud)
所以,我想知道找到第一行(从顶部开始)和包含每个单词的最后一行的最快方法是什么.因此,蝙蝠从第1行开始,在第6行结束.乐趣从第7行开始,在第10行结束.
除了我将每个单元格与之前的单元格进行比较的循环之外,还有更快速的方法可以实现这一点,如果它们不同,可以添加行变量吗?
非常感谢任何建议/帮助!
编辑:在VBA中查找如何执行此操作.
Bru*_*yne 12
我想通了 - 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
Run Code Online (Sandbox Code Playgroud)
然后用其他单词替换"bats",它会起作用.
编辑:您可能还需要添加LookIn:=xlValues
限定符,具体取决于搜索的信息/数据.
小智 7
如果值已经分组,您可以使用以下内容查找第一个Row事件
=MATCH("Bats",A:A,0)
Run Code Online (Sandbox Code Playgroud)
这样可以找到最后一次出现的行
=(MATCH("Bats",A:A,0)+(COUNTIF(A:A,"Bats"))-1)
Run Code Online (Sandbox Code Playgroud)
并用你想要查找的每个不同的值替换"蝙蝠".
归档时间: |
|
查看次数: |
56373 次 |
最近记录: |