以文本方式查看主题

-  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=106769)

--  作者:zhangning
--  发布时间:2017/9/15 11:49:00
--  截取字符串
老师,您好!

如列“部品ID”是类似“BB12345678AA”
我需要截取中间的8位(12345678),要去掉前2位和后2位,
请问老师,怎么弄呢




--  作者:有点甜
--  发布时间:2017/9/15 11:55:00
--  
Dim str As String = "BB12345678AA"
If str.length >= 2 Then
    str = str.SubString(2, str.Length-4)
    msgbox(str)
End If

--  作者:zhangning
--  发布时间:2017/9/15 11:59:00
--  
谢谢老师,如截取前的是“部品ID”列,截取完后的放入“部品”列,
想将截取后的放入“部品”列,这样如何写呢?

--  作者:有点甜
--  发布时间:2017/9/15 12:12:00
--  

DataColChanged

 

If e.DataCol.name = "部品id"
    Dim str As String = e.newvalue
    If str.length >= 2 Then
        str = str.SubString(2, str.Length-4)
        e.DataRow("部品") = str
    Else
        e.DataRow("部品") = Nothing
    End If
End If


--  作者:zhangning
--  发布时间:2017/9/29 15:21:00
--  
老师,您好!
如果我想要截取前10位,即去掉后2位,
改成下记代码,可以吗?
If e.DataCol.name = "部品id"
    Dim str As String = e.newvalue
    If str.length >= 2 Then
        str = str.SubString(0, str.Length-2)
        e.DataRow("部品") = str
    Else
        e.DataRow("部品") = Nothing
    End If
End If



--  作者:有点甜
--  发布时间:2017/9/29 15:23:00
--  
可以