完美方案:用VBA自定义函数
近乎白菜也无所谓,按以下步骤操作就行:
1、EXCEL里,按Alt+F11,打开VBA编辑窗口
2、点菜单“插入”-“模块”
3、把下面的代码复制过去
Public Function Newstr(str0 As String) As String
Dim str1, strNum, tmpA As String, tmpN As Integer
str1 = ""
strNum = ""
For i = 1 To Len(str0)
tmpA = Mid(str0, i, 1)
If tmpA >= "0" And tmpA <= "9" Then
strNum = strNum & tmpA
If i = Len(str0) Or (Mid(str0, i + 1, 1) < "0" Or Mid(str0, i + 1, 1) > "9") Then
tmpN = CInt(strNum)
Select Case tmpN
Case Is <= 180
tmpN = tmpN + 10
Case 181 To 300
tmpN = tmpN + 15
Case 301 To 1000
tmpN = tmpN + 30
Case 1001 To 2000
tmpN = tmpN + 50
Case 2001 To 3000
tmpN = tmpN + 100
Case Is >= 3001
tmpN = tmpN + 120
End Select
strNum = ""
str1 = str1 & tmpN
End If
Else
str1 = str1 & tmpA
End If
Next
Newstr = str1
End Function
4、关闭VBA窗口,返回EXCEL工作表
5、假如原数据在A1,在新单元格输入公式:
=newstr(A1)
就这样。。。。。。。。。。。。
追问公式怎么输入。。。还有就是可以一次输入一列吗。。。求具体操作。OK马上给分
追答第3条那些代码有没有复制到VBA里?
如果已经复制好了,就可以像EXCEL的其他公式一样使用。
即:在要在求值的单元格里输入:=newstr(A1)就行了(A1为存储原始数据的单元格,可根据实际情况调整)
其他单元格用复制单元格的方法就可以了。