excel2010 想把表格中的座机删掉只保留手机号。搜到的答案说用宏,具体怎么用。纯小白用户需具体操作步骤

该文档好几千条电话号码

不需要用宏

 

选中范围

ctrl+H  输入:

0??-*

替换为   什么都不填

 

确定

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-04-12

看了你贴的图片不用宏不用宏应该就可以做到

操作见下图

追问

但是有好多单元格里是两个手机号,都想保留下来。怎么办?

追答

你的贴图中的情况,没有你说的情况,所以没处理..你把你说的这种情况贴出来.看看.能用分列这种方式处理不.如不能.我再帮你写个宏来处理.

追问

追答

好吧,这种处理用宏是要方便一些 电话号码必须是以空格分隔, 结果放在B列

在这个工作表名称上点击鼠标右键 选查看代码,在弹出的VBA编辑窗口,粘贴下面代码,关闭VBA编辑窗口,返回工作表 按ALT+ F8 选择 执行

PS: 同时给你一个 示例文件你可以下载

代码如下:


Sub 清除座机()
Dim Yarr, Tarr
Yarr = Range("A1:A" & [A65536].End(xlUp).Row).Value
For i = 1 To UBound(Yarr)
If InStr(Yarr(i, 1), " ") Then
Tarr = Split(Yarr(i, 1), " ")
For j = 1 To UBound(Tarr)
If Left(Tarr(j), 1) = "0" Then Tarr(j) = ""
Next
Yarr(i, 1) = Trim(Join(Tarr, " "))
End If
Next
Range("B1").Resize(UBound(Yarr), 1) = Yarr
End Sub



追问

不好意思,还得麻烦您,提示语法错误

追答

百度的转码有问题,造成的.

Sub 清除座机()
Dim Yarr, Tarr
Yarr = Range("A1:A" & [A65536].End(xlUp).Row).Value
For i = 1 To UBound(Yarr)
If InStr(Yarr(i, 1), " ") Then
Tarr = Split(Yarr(i, 1), " ")
For j = 1 To UBound(Tarr)
If Left(Tarr(j), 1) = "0" Then Tarr(j) = ""
Next
Yarr(i, 1) = Trim(Join(Tarr, " "))
End If
Next
Range("B1").Resize(UBound(Yarr), 1) = Yarr
End Sub

本回答被提问者采纳
第2个回答  2013-04-11

试下这个

b1=IF(T(A1)="",A1,VALUE(LEFT(A1,11)))

下拉填充。。。

第3个回答  2013-04-12
在B1 的编辑栏输入 =left(A1,11) 下拉
第4个回答  2013-04-11
你这样:
B1=left(a1,11),拉到最后,试一下。