以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]如何提取单元格中的数字?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=58397)

--  作者:hrw68529
--  发布时间:2014/10/16 9:04:00
--  [求助]如何提取单元格中的数字?
如下图:在一列(如:内设机构数)提取数字到另一个表中,注:原表中内设机构数列为字符列,提取后的表中的“内设机构数”列为整数列,如何提取转换,同时要删除多余的空格。谢谢
图:
图片点击可在新窗口打开查看此主题相关图片如下:截图01.png
图片点击可在新窗口打开查看

--  作者:Bin
--  发布时间:2014/10/16 9:09:00
--  
提取后面的那个数字?

for each r as row in tables(X).rows
   if r("内设机构数").Contains(":") then
      dim dr as datarow = tables(X2).addnew
      dr("内设机构数")=cint(r("内设机构数").split(":")(1).trim())
   end if
next


--  作者:有点甜
--  发布时间:2014/10/16 9:09:00
--  
Dim str As String = "13.批准机构: 99   "
Dim reg As new System.Text.RegularExpressions.Regex("[0-9]+(?=$| +)")
Dim mc As Object = reg.matches(str)
msgbox(mc(0).Value)

--  作者:tuyage
--  发布时间:2014/10/16 9:16:00
--  
这个好像跟我的需求是一样的。参考下
--  作者:hrw68529
--  发布时间:2014/10/16 9:53:00
--  
有点甜:给的代码只能转换一个,批量转换一列或几列,怎么弄,一头雾水,谢谢
--  作者:Bin
--  发布时间:2014/10/16 9:55:00
--  
套到2楼的代码去,或者直接用2楼的代码

for each r as row in tables(X).rows
    Dim str As String = r("内设机构数")
Dim reg As new System.Text.RegularExpressions.Regex("[0-9]+(?=$| +)")
Dim mc As Object = reg.matches(str)
      dim dr as datarow = tables(X2).addnew
      dr("内设机构数")=cint(mc(0).Value)
next


--  作者:hrw68529
--  发布时间:2014/10/16 9:59:00
--  
如何是多列怎么办


--  作者:有点甜
--  发布时间:2014/10/16 10:00:00
--  
 那就再循环对应的列
[此贴子已经被作者于2014-10-16 10:00:18编辑过]

--  作者:hrw68529
--  发布时间:2014/10/16 10:04:00
--  
执行2楼的代码,出现以下错误:
图片点击可在新窗口打开查看此主题相关图片如下:截图02.png
图片点击可在新窗口打开查看

--  作者:有点甜
--  发布时间:2014/10/16 10:06:00
--  
 For Each r As Row In Tables("X").rows
    Dim str As String = r("内设机构数")
    Dim reg As new System.Text.RegularExpressions.Regex("[0-9]+(?=$| +)")
    Dim mc As Object = reg.matches(str)
    Dim dr As Row = Tables("X2").addnew
    dr("第一列")=cint(mc(0).Value)
Next