作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我在任意列中具有从第 1 行往下的这些值:
1 A
2 A
3 A
4 A
5 B
6 B
7 B
8 A
9 A
10 A
我希望能够说 start=5 是第一个 B,last=7 是最后一个 B。如果没有 B,则第一个和最后一个都返回 0。
最佳答案
不要忘记,在 VBA 中您仍然可以访问大量内置 Excel 函数。示例(假设您的数据位于第 1 列):
找到第一个B...Columns(1).Find(What:="B", LookAt:=xlWhole, MatchCase:=False).Row '返回 5
找到最后一个B...Columns(1).Find(What:="B", LookAt:=xlWhole, SearchDirection:=xlPrevious, MatchCase:=False).Row '返回 7
如果未找到 B,则返回错误。我们可以利用这一点,如果未找到 B,则使用错误处理返回 0。把它们放在一起......
Sub DoTest()
Dim RowFirst As Integer, _
RowLast As Integer
On Error GoTo ErrorHandler
RowFirst = Columns(1).Find(What:="B", LookAt:=xlWhole, SearchDirection:=xlNext, MatchCase:=False).Row
RowLast = Columns(1).Find(What:="B", LookAt:=xlWhole, SearchDirection:=xlPrevious, MatchCase:=False).Row
Exit Sub
ErrorHandler:
RowFirst = 0
RowLast = 0
End Sub
关于Excel VBA : Return first occurrence of a word in a column? 最后一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13769375/
我是一名优秀的程序员,十分优秀!