以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  请教老师,这种问题的单元格怎么筛选出来  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=125161)

--  作者:fntfgz
--  发布时间:2018/9/21 10:51:00
--  请教老师,这种问题的单元格怎么筛选出来

1、出现的原因,文字后面被删除了

 

2、难点:有的内容有多级括号相对应,比强下图有的就有两个()组合,筛选出匹配不全的

 

 


图片点击可在新窗口打开查看此主题相关图片如下:括号.png
图片点击可在新窗口打开查看


--  作者:z769036165
--  发布时间:2018/9/21 11:11:00
--  
判断一下()出现的次数是否为双数就可以了
Dim s As String = "22222(12132(1312)31231212312"
Dim i As Integer =  len(s) - len(s.Replace("(","").Replace(")",""))
If i Mod 2 = 1
    MessageBox.Show("此行有问题")
End If
但是对于括号本身是全的,但是少了内容就判断不出来了,你这可以看下设置的列长度啊,判断列内容长度等于设置列长度的这些一般就有问题。

--  作者:有点甜
--  发布时间:2018/9/21 11:38:00
--  

参考代码

 

Dim str As String = "aaa(bbbccdd(efg)999999"
Dim ls As new List(Of String)
For Each s As String In str
    If s = "(" Then
        ls.add("(")
    ElseIf s = ")" Then
        If ls.count > 0 AndAlso ls(ls.count-1) = "(" Then
            ls.RemoveAt(ls.count-1)
        Else
            msgbox("多了),不匹配")
            Exit For
        End If
    End If
Next
msgbox("不匹配括号:" & String.join(",",ls.ToArray))