利用VBA实现:提取Excel单元格数字

背景:我收到一个excel表格,里面含有至少两个不连续的数字,比如,1年纪2班,1年纪3班,2年纪1班 两个逻辑。我想对这个进行排序整理,怎么办?

限制因素:①数字是文本形式,不能正确排序。②excel筛选通常按照最后一个数字排,少一个逻辑的划分。

处理手段:我将两个数字分别提取出来,利用排序即可!

Sub dealcelltonum()
    r = Cells(Rows.Count, 1).End(3).Row     //被处理数据放置第一列,可修改
    arr = [a1].Resize(r)
    For j = 2 To UBound(arr)    //从第二行开始处理
        k = 2        //第二列开始填充数字,可修改
        str1 = ""
        For i = 1 To Len(arr(j, 1)) + 1          //必须加一,否则最后位数字时,不能执行判据
            x = Mid(arr(j, 1), i, 1)
            ty = x Like "[0-9]"             //判断是否满足要求
            If x Like "[0-9]" Then
                str1 = str1 & x
                flag = 1
            End If
                            
            If Not ty And flag = 1 Then         //当上一个数据是数字,但这一个不是数字时,真  (即数字不连续)
                flag = 0
                Cells(j, k) = str1
                str1 = ""
                k = k + 1
            End If
            
            
        Next i
                       
    Next j
            
End Sub

 使用说明:将待处理数据放置第一列,生成的数字从第二列开始。将程序中的“//”改为“ ’ ”,C的注释和VBA不同!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值