Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2197|回复: 5

[已解决]如何用VBA查找17的位置

[复制链接]
发表于 2016-5-16 17:32 | 显示全部楼层 |阅读模式
本帖最后由 lingyuncelia1 于 2016-5-17 14:23 编辑

捕获17.JPG
如图示,如何查找A列中第一次出现17的位置,
如果是查找第二次出现的17又如何写代码呢?
如果是查找第三次出现的17又如何写代码呢?


最佳答案
2016-5-17 11:41
Sub celia2()
    Dim i, s
    For i = 1 To 30
        If Cells(i, 1) = 17 Then
            s = s + 1
            If s = 3 Then    '指定第几次
                MsgBox "第" & s & "次在" & i & "行"
                Exit For
            End If
        End If
    Next
End Sub

17.zip

6.27 KB, 下载次数: 9

发表于 2016-5-16 17:41 | 显示全部楼层
循环判断,如果等于17,s就计数一次。
当s达到指定次数时,就输出。


楼主可先自己写一个代码:查找A列中第一次出现17的位置
如果写好了,稍改1下,就行了
回复

使用道具 举报

 楼主| 发表于 2016-5-17 09:26 | 显示全部楼层
爱疯 发表于 2016-5-16 17:41
循环判断,如果等于17,s就计数一次。
当s达到指定次数时,就输出。

Sub celia()
For i = 1 To 30
If Cells(i, 1) = 17 Then s = s & "," & i
Next
End Sub
s=,7,12,22
如果全部都是个位数就好办了,但是17的位置在同一列是不定的。
就算用上inStr函数也不知如何是好,不能很灵动的锁定各次17出现的所在位置。
可以用findNext,但要按顺序逐个逐个来,如果一开始就选择第N(N不固定)个17的位置就比较麻烦。
回复

使用道具 举报

发表于 2016-5-17 10:34 | 显示全部楼层
全部都是个位数,是什么意思?

17的位置在同一列是不定的,是什么意思?难道全部数据不是只有A列吗
回复

使用道具 举报

 楼主| 发表于 2016-5-17 11:35 | 显示全部楼层
爱疯 发表于 2016-5-17 10:34
全部都是个位数,是什么意思?

17的位置在同一列是不定的,是什么意思?难道全部数据不是只有A列吗

在同列,只是不知道在同列的哪个位置。
回复

使用道具 举报

发表于 2016-5-17 11:41 | 显示全部楼层    本楼为最佳答案   
Sub celia2()
    Dim i, s
    For i = 1 To 30
        If Cells(i, 1) = 17 Then
            s = s + 1
            If s = 3 Then    '指定第几次
                MsgBox "第" & s & "次在" & i & "行"
                Exit For
            End If
        End If
    Next
End Sub

评分

参与人数 1 +3 收起 理由
lingyuncelia1 + 3 很给力

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-24 11:48 , Processed in 0.341319 second(s), 15 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表