Excel VBA:从选定单元格向上统计连续文本行数(IsNumeric判断终止)
Excel VBA 实现指定范围文本行统计
核心逻辑
从当前选中的单元格(A7,内容为Doug)开始向上逐行遍历:
- 用
IsNumeric()函数检查对应行的B列单元格,一旦遇到第一个数值型单元格,立即停止遍历 - 在遍历过程中,仅统计A列属于文本类型的行,包含起始行(Doug)及Julie所在行(若未提前触发数值停止条件)
VBA 代码实现
Sub CountTargetTextRows() Dim currentRow As Integer Dim textCount As Integer Dim stopLoop As Boolean ' 获取当前选中单元格的行号 currentRow = Selection.Row textCount = 0 stopLoop = False Do While currentRow >= 1 And Not stopLoop ' 检查B列当前行是否为数值,是则终止循环 If IsNumeric(Range("B" & currentRow).Value) Then stopLoop = True Else ' 仅统计A列的文本行 If Not IsNumeric(Range("A" & currentRow).Value) Then textCount = textCount + 1 End If ' 若需要以Julie为终止条件(即使没遇到数值),可取消以下注释 ' If Range("A" & currentRow).Value = "Julie" Then ' stopLoop = True ' End If End If ' 向上移动一行 currentRow = currentRow - 1 Loop ' 输出统计结果 MsgBox "符合条件的文本行数量:" & textCount End Sub
关键细节说明
Selection.Row:动态获取起始行号,适配不同的选中位置IsNumeric():严格判断单元格类型,确保仅在B列出现数值时停止- 内层文本判断:通过反向使用
IsNumeric(),过滤掉A列的数值型内容,只统计文本行
内容的提问来源于stack exchange,提问作者Chris Singleton
相关产品推荐
相关产品推荐

