我的单元格A1中会有一个字符串,例如02020.我需要一个公式来检查这个字符串并返回第一个不等于0的字符的值。所以在上面的例子中它应该返回2。
感谢您的帮助。
答案 0 :(得分:1)
唯一重要的问题是前导零可能是字符串中的第一个字符,或者它可能只是使用前导零格式化数值的结果。解决方案应涵盖两种情况。
考虑这个用户定义的功能:
Public Function DropTheZeros(r As Range) As Variant
Dim s As String, i As Long
s = r(1).Text
For i = 1 To Len(s)
DropTheZeros = Mid(s, i, 1)
If DropTheZeros <> "0" Then Exit Function
Next i
DropTheZeros = ""
End Function
即使前导零是格式化的手段,这也应该有用。
甚至:
Public Function DropTheZeros2(r As Range) As Variant
DropTheZeros2 = Left(Replace(r(1).Text, "0", ""), 1)
End Function
甚至没有VBA:
=LEFT(SUBSTITUTE(TEXT(A1,"@"),"0",""),1)