代码之家  ›  专栏  ›  技术社区  ›  KiW

查找变量值+符号组合

  •  1
  • KiW  · 技术社区  · 7 年前

    我有以下问题。我正在将未排序的文本从pdf读入excel,用随机条目填充我的工作表。

    不,我正在搜索对大多数部分都很有效的元素,我只是在查找变量值时遇到了重大问题;符号(&A);可变值组合。 0/700 出现在不同的部分,并且没有显示找到它们的顺序。

    示例表:

    100 mt/h 
    m³/t
    S/C
    0/700
    0/25
    5/31
    43/47
    700/1000
    

    我需要找到“数字”/“数字”组合的所有内容,例如。 . 问题是其中唯一的常量是“/”(斜杠),它也出现在其他单元格中。所以我想知道是否有机会搜索数字/数字。

    Set prdct = Sheets("Tabelle1").Range("A1:K100").Find("/")
    

    给我所有的条目,有一个斜杠发生不幸没有帮助。 所以我进一步尝试:

    Set prdct = Sheets("Tabelle1").Range("A1:K100").Find("\d*/\d*")
    Set prdct = Sheets("Tabelle1").Range("A1:K100").Find("\d*"&"/"&"\d*")
    Set prdct = Sheets("Tabelle1").Range("A1:K100").Find("\d+/\d+")
    Set prdct = Sheets("Tabelle1").Range("A1:K100").Find("\d+"&"/"&"\d+")
    

    Nothing ,所以很明显有些事情没有解决。 如果有帮助,斜线左侧的最大值可以是max 999 9999 0/1 也 我真的非常感谢任何帮助,提示不同的方法和类似的。干杯

    1 回复  |  直到 7 年前
        1
  •  2
  •   Vityata    7 年前

    给你,看看:

    Option Explicit
    
    Public Sub TestMe()
    
        Dim arrInput    As Variant
        Dim varVar      As Variant
        Dim lngCounter  As Long
    
        arrInput = [{"100 mt/h","m3/t","S/C","0/700","0/25","5/31","43/47","700/1000"}]
    
        For Each varVar In arrInput
            Debug.Print varVar
            Debug.Print blnCheck2Integers(varVar)
            Debug.Print "------------------------------"
        Next varVar
    
    End Sub
    
    Public Function blnCheck2Integers(ByVal strInput As String, _
                                                Optional strDelim = "/") As Boolean
    
        Dim arrTemp As Variant
    
        arrTemp = Split(strInput, strDelim)
        If UBound(arrTemp) <> 1 Then Exit Function
        blnCheck2Integers = IsNumeric(arrTemp(0)) And IsNumeric(arrTemp(1))
    
    End Function
    

    按“/”拆分,然后检查这两个值是否为数字。如果值不是2,则返回false。这是控制台中的结果:

    100 mt/h
    False
    ------------------------------
    m3/t
    False
    ------------------------------
    S/C
    False
    ------------------------------
    0/700
    True
    ------------------------------
    0/25
    True
    ------------------------------
    5/31
    True
    ------------------------------
    43/47
    True
    ------------------------------
    700/1000
    True
    ------------------------------