仅从 H 列中删除字母 - MS Excel 2007(无插件)

Remove Alphabets only from a H-Column - MS Excel 2007 (Without Plugin)

我想一次性删除一列中的所有字母。我只想保留数字。有6000个单元格,很难一一删除文本。可能吗?

Current Column
[text 123456]
[text 123456]
[text 123456]
and so on...

我想要的

[123456]
[123456]
[123456]
and so on...

单击感兴趣的列中的任何单元格,然后 运行 这个简短的宏:

Sub dural()
    Dim rng As Range, r As Range, v As String, CH As String
    Dim v2 As String
    Set rng = Intersect(ActiveCell.EntireColumn, ActiveSheet.UsedRange)

    For Each r In rng
        v = r.Text
        If v <> "" Then
            v2 = ""
            l = Len(v)
            For i = 1 To l
                CH = Mid(v, i, 1)
                If IsNumeric(CH) Then
                    v2 = v2 & CH
                End If
            Next i
            r.Value = v2
        End If
    Next r
End Sub

编辑#1:

宏非常易于安装和使用:

  1. ALT-F11 调出 VBE window
  2. ALT-I ALT-M 打开一个新模块
  3. 粘贴内容并关闭 VBE window

如果您保存工作簿,宏也会随之保存。 如果您使用的 Excel 版本晚于 2003,则必须保存 文件为 .xlsm 而不是 .xlsx

删除宏:

  1. 如上所述调出 VBE window
  2. 清除代码
  3. 关闭 VBE window

要使用来自 Excel 的宏:

  1. ALT-F8
  2. Select宏
  3. 触摸运行

要了解有关宏的更多信息,请参阅:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

必须启用宏才能工作!

编辑#2:

删除个号码,替换为:

If IsNumeric(CH) Then

与:

If Not IsNumeric(CH) Then

也可以使用公式,您可以 复制 + 粘贴 数据列(示例是 A 列):

="["&MID(A1,MIN(IF(ISERROR(FIND({1;2;3;4;5;6;7;8;9;0},A1)),"",FIND({1;2;3;4;5;6;7;8;9;0},A1)))+1,FIND("]",A1,1))

这是一个视觉示例: