标题:怎么样获取文字内的数字
只看楼主
wangizchao
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2018-11-12
结帖率:66.67%
已结贴  问题点数:10 回复次数:5 
怎么样获取文字内的数字


For i = 1 To Len(a)
d = Mid(a, i, 1)
If Asc(d) < 0  Then
c = c & d
ElseIf d = Chr(10) Then
c = c & vbCrLf
End If
Next
这行代码可以吧 文本的 汉字提取出来
我还想把 汉字内的数字(除开字母)也提取出来
有什么办法?
i1 = Split(a, vbCrLf)
For i2 = 0 To UBound(i1)
a1 = ""
For i = 1 To Len(i1(i2))
d = Mid(i1(i2), i, 1)
If Asc(d) < 0 Then
a1 = a1 & i & " "
a2 = i
a3 = Split(a1, " ")
End If
Next
b1 = b1 & Mid(i1(i2), a3(0), a2) & vbCrLf
ss = ""
For i3 = 1 To Len(b1)
b2 = Mid(b1, i3, 1)
If Asc(b2) < 0 Or Asc(b2) >= 48 And Asc(b2) <= 57 Then
ss = ss & b2
ElseIf b2 = Chr(10) Then
ss = ss & vbCrLf
End If
Next
Next


感谢各位大神 最终我还是用最原始方法解决来了

[此贴子已经被作者于2018-12-29 20:39编辑过]

搜索更多相关主题的帖子: 数字 Mid If Asc Then 
2018-12-28 22:42
wds1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:49
帖 子:393
专家分:2025
注 册:2016-3-10
得分:5 
Private Sub Command1_Click()
  Text1.Text = "中asd1231文 1232151" & vbCrLf & "中asd1231文 1232151"
  For i = 1 To Len(Text1.Text)
    d = Mid(Text1.Text, i, 1)
    If Asc(d) < 0 Then
      c = c & d
    ElseIf d = Chr(10) Then
      c = c & vbCrLf
    ElseIf d >= Chr(48) And d =< Chr(57) Then'判断数字
      c = c & d
    End If
  Next
  Debug.Print c
End Sub
2018-12-29 08:34
wangizchao
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2018-11-12
得分:0 
回复 2楼 wds1
不好意思 其实我想把 中文字 和中文字内的 数字一起提取 .昨晚有点累 标题没检查好

[此贴子已经被作者于2018-12-29 11:13编辑过]

2018-12-29 10:28
ZHRXJR
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:125
帖 子:1034
专家分:5519
注 册:2016-5-10
得分:5 
程序代码:
Private Sub Command1_Click()
  Me.Show
  Text1.Text = "中asd1231文 1232151" & vbCrLf & "中asd1231文 1232151"
  For i = 1 To Len(Text1.Text)
    d = Mid(Text1.Text, i, 1)
    If d = Chr(10) Then c = c & vbCrLf: m = m & vbCrLf
    If d >= Chr(48) And d <= Chr(57) Then
      c = c & d
    ElseIf Asc(d) < 0 Then
        m = m & d
    End If
  Next
  Print c & vbCrLf & m
End Sub


请不要选我!!!
2018-12-29 11:02
wangizchao
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2018-11-12
得分:0 
回复 4楼 ZHRXJR
不好意思 其实我想把 中文字 和中文字内的 数字一起提取 .昨晚有点累 标题没检查好
2018-12-29 11:12
ZHRXJR
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:125
帖 子:1034
专家分:5519
注 册:2016-5-10
得分:0 
程序代码:
Private Sub Command1_Click()
    Me.Show
    Dim AA(1 To 2) As String, c As String, d As String
  AA(1) = "中asd1231文 1232151": AA(2) = "中asd4567文 1232151"
  AA(1) = Left(AA(1), InStr(1, AA(1), " ", 1)): AA(2) = Left(AA(2), InStr(1, AA(2), " ", 1))
  For J = 1 To 2
  For I = 1 To Len(AA(J))
    d = Mid(AA(J), I, 1)
    If d >= Chr(48) And d <= Chr(57) Or Asc(d) < 0 Then
      c = c & d
    End If
  Next I
  c = c & vbCrLf
  Next J
  Print c
End Sub


请不要选我!!!
2018-12-29 12:03



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-492366-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018921 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved