分享

提取EXCEL中一列字符串中的数字部分

 恐怖骑士 2010-12-30
其实是很简单的……高手就不用看了……主要是实用,菜鸟随手就能用上
 
今天在做一个给客户优惠的录入项目,一年一度要受的苦
同事给的是一列如“美元优惠结售汇中间价80个点”的数据,而我就要其中的“80”,近千个,一个个输与核对要60分钟。
手工输入自非我EXCELHOME会员本色,但是貌似EXCEL无现成函数,如果要动用数组函数环环嵌套也十分麻烦,不过我眉头一皱,计上心来
何不用无限强大的VBA呢,指导思想就是遍历每个非空单元格,逐个检查单元格内容的每个字符,如果是数字则抓出来。
以下是代码
你可以将它复制到VB编辑器里对应SHEET的代码栏位,然后启用宏,并将安全等级调至 中,使用时直接双击你要转换的那列第一格即可……
 
Public k
Sub getnumber()
Dim i As Integer
Dim p As Integer
Dim j As Integer
Dim ggg As String
For i = 2 To [A65536].End(xlUp).Row
   p = Len(Cells(i, k))
   ggg = ""
   For j = 1 To p
  
   If IsNumeric(Mid(CStr(Cells(i, k)), j, 1)) = True Then                     '所以说关键时ISNUMERIC个函数省去不少麻烦,如果自己写估计要逐个判断ASCII码表咯。
   ggg = ggg & Mid(CStr(Cells(i, k)), j, 1)
  
   End If
  
   Next
   Cells(i, k) = ggg
Next
End Sub
 
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)    '主要实现双击那列第一格才呼叫 GETNUMBER的过程
If Target.Row = 1 Then
k = Target.Column
Call getnumber
End If
End Sub

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多