是否有查找“结尾为”的功能

时间:2019-04-16 17:42:29

标签: excel vba

是否存在使用vba从以“ .5”结尾的列中的条目中查找功能?

我有一个实时摘要,该摘要是从html页面获取的,B列中的值是浮点数,我想知道是否可以使用VBA函数找出以0.5结尾的值

2 个答案:

答案 0 :(得分:3)

没有 VBA 的情况:

=SUMPRODUCT(--(RIGHT(B1:B23,2)=".5"))

enter image description here

并使用vba,然后:

Sub dural()
    MsgBox Evaluate("SUMPRODUCT(--(RIGHT(B1:B23,2)="".5""))")
End Sub

EDIT#1:

工作表公式将 B 列视为Strings。并计算在 B 列中以 .5 结尾的数量。通过-()中的表达式将其表示为 0/1 的数组。

SUMPRODUCT()只是将这个数组加起来。

答案 1 :(得分:2)

VBA,作为用户定义的函数(UDF):

Public Function CountThePointFive(ByRef theArea As Range) As Long
    Dim count As Long
    Dim cell As Variant
    For Each cell In theArea
        Dim value As String
        value = CStr(cell.value)
        Dim integerPart As Long
        integerPart = CLng(Left$(CStr(value), Len(value) - InStr(1, value, ".")))
        If (cell.value - integerPart) = 0.5 Then
            count = count + 1
        End If
    Next cell
    CountThePointFive = count
End Function