我有以下问题。我正在从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等。干杯。
答案 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
------------------------------