查找变量值+符号组合

时间:2017-08-16 08:36:48

标签: vba excel-vba find symbols excel

我有以下问题。我正在从pdf中读取未分类的文本到excel,用相当随机的条目填充我的工作表。

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

示例表:

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

我需要找到所有的"数字" /"数字"例如组合0/700。问题是唯一的常数就是" /" (斜线),也发生在其他单元格中。所以我想知道是否有机会搜索号码/号码。

我尝试了以下内容:

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,所以显然有些事情没有成功。 如果它有助于斜杠左侧的最大值可以是最大999,则在斜杠最大9999的右侧。但它也可以是0/1。 我真的很感激任何帮助,提示不同的appraoches等。干杯。

1 个答案:

答案 0 :(得分:2)

你去,检查一下:

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
------------------------------