PRADA Plaza 66-DONA - P66TD
求最后一个“-”的位置 如果指定字符“-”只有一个 就求出那一个的位置
你如果要找出全部“-”号并在其前后加空格,用字符串替换函数就行了
s="PRADA Plaza 66-DONA-P66TD"
s=Replace(s,"-"," - ")
运行上面两句后,s就就字符串"PRADA Plaza 66 - DONA - P66TD"
s="PRADA Plaza 66-DONA-P66TD"
s=Replace(s,"-"," - ")
运行上面两句后,s就就字符串"PRADA Plaza 66 - DONA - P66TD"
温馨提示:答案为网友推荐,仅供参考
第1个回答 推荐于2017-11-21
instrRev("PRADA Plaza 66-DONA - P66TD","-")追问
Dim p%, i%
p = InStr(p + 1, s, "-")
i = 1
Do While p > 0
MsgBox "第" & i & "个""-""的位置:" & p
p = InStr(p + 1, s, "-")
i = i + 1
Loop
End Sub
Dim c As Range, firstAddress$, cc$
With ActiveSheet.UsedRange
Set c = .Find(s, LookIn:=xlValues)
If Not c Is Nothing Then
MsgBox "第一个位置:" & c.Address
firstAddress = c.Address
Do
If c.Address <> firstAddress Then cc = c.Address
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
MsgBox "最后一个位置:" & cc
End If
End With
End Sub
你好,我要截取后面一个“-”,请问有什么办法,或者是三个字符“ - ”的位置(-前后加一个空格符)
追答你的问题是求最後一个"-"的位置,我上面写的有问题吗?
追问不好意思啊 我当成InStr这个函数了
请问和instrRev有什么区别啊
InStr从前往后找
instrRev从后往前找
不好意思啊,又麻烦你一下 假如有4个 我要找第3个“-”的位置怎么找
追答Sub ttt(s$)Dim p%, i%
p = InStr(p + 1, s, "-")
i = 1
Do While p > 0
MsgBox "第" & i & "个""-""的位置:" & p
p = InStr(p + 1, s, "-")
i = i + 1
Loop
End Sub
上面的代码列出所有“-”的位置,请参考。
谢谢啊!不过那个s是什么变量啊,还有开头一般都是sub ttt( ) 为什么你那不一样了
追答s是字符串,用法:ttt("PRADA Plaza 66-DONA - P66TD")
追问谢谢了,第一次见识到可以把字符串直接写到sub的括号里
还有一个问题拜托你了,我想精确查找某个字符串在工作表的行号,比如就"p66"这个字符串。要求找到第一个和最后一个的位置,拜托你了。
不好意思啊,初学vba好多问题都不懂,给你添麻烦了
追答你的问题还真是没完没了了...不能新开一个问题吗?
追问呵呵,新开一个问题,我怕没有人能详细回答我问题了。拜托了,到时候给你加分。
追答Sub t1(s$)Dim c As Range, firstAddress$, cc$
With ActiveSheet.UsedRange
Set c = .Find(s, LookIn:=xlValues)
If Not c Is Nothing Then
MsgBox "第一个位置:" & c.Address
firstAddress = c.Address
Do
If c.Address <> firstAddress Then cc = c.Address
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
MsgBox "最后一个位置:" & cc
End If
End With
End Sub
用法:t1("p66")
本回答被提问者采纳