VBA instr在左功能中使用的功能?

时间:2018-08-28 07:53:26

标签: excel vba excel-vba

我所拥有的:

A列具有该数据24 / 25,25 / 26,最大为100/101,而B列具有该数据24,25,26,最大为101。使用Left函数,我正在检查Left(24 / 25,2)和B列。...到达100/101时,我的收益为10。

我想要什么:

Left(100 / 101,2)然后它已经返回100我该怎么办,我知道如果我们给3,那么它将返回,但是当我们给3然后24 /也会来。给我任何建议。

3 个答案:

答案 0 :(得分:0)

工作表公式版本:

您要在单元格中查找“ /”的位置,然后删除1。这将为Left提供“ /”之前的字符数。因此,如果数据在A2中,则将以下内容放在B2中:

=IFERROR(LEFT(A2,FIND("/",A2)-1),"")

VBA版本(用户定义的功能)可能类似于:

您提到使用Instr

Option Explicit
Public Sub TEST()

 Debug.Print GetLeft([A2].Text)
End Sub

Public Function GetLeft(ByVal aString As String) As Variant
    If InStr(aString, "/") > 0 Then
        GetLeft = Left$(aString, InStr(aString, "/") - 1)
    Else
        GetLeft = CVErr(xlErrNA)
    End If
End Function

答案 1 :(得分:0)

您可以使用Split Function

Dim str As String
str = "24/25,25/26"

Dim arr As Variant
arr = Split(str, "/")

结果为

'arr(0) is "24"
'arr(1) is "25,25"
'arr(2) is "26"

答案 2 :(得分:0)

使用Like

If Range("A4").Value2 & "/" Like "*" & range("B4").Value2 & "/*" Then

我在每边的右侧添加了一个“ /”,以避免10匹配100或101。