Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 1005|回复: 4

[已解决]查找单元格中的任意数字为“空”

[复制链接]
发表于 2022-8-5 16:46 | 显示全部楼层 |阅读模式
查找单元格中的任意数字为“空”.rar (6.98 KB, 下载次数: 13)
发表于 2022-8-5 22:13 | 显示全部楼层
Sub a()
    Dim Rng As Range, Arr(1 To 3) As String, i%
    With CreateObject("vbscript.regexp")
        .Pattern = "\d+"
        For Each Rng In Range("A1").CurrentRegion
            i = i + 1
            Arr(i) = .Replace(Rng, "空")
        Next
    End With
    [E1].Resize(1, 3) = Arr
End Sub
屏幕截图 2022-08-05 221115.png

查找单元格中的任意数字为“空”.zip

16.79 KB, 下载次数: 9

回复

使用道具 举报

 楼主| 发表于 2022-11-27 11:30 | 显示全部楼层
谢谢。不过,如果一个字符串中有不相连的两处数字,再次运行宏,则只能最左侧的数值变为指定的“空”,也就是宏只能运行一次,能否多次替换直到全部替换为止?如单元格fangj345,改为fang999j345,运行宏后现只能变为fang空j345,期望变为fang空j空
回复

使用道具 举报

 楼主| 发表于 2022-11-27 11:31 | 显示全部楼层
谢谢。不过,如果一个字符串中有不相连的两处数字,再次运行宏,则只能最左侧的数值变为指定的“空”,也就是宏只能运行一次,能否多次替换直到全部替换为止?如单元格fangj345,改为fang999j345,运行宏后现只能变为fang空j345,期望变为fang空j空
回复

使用道具 举报

发表于 2022-11-28 14:41 | 显示全部楼层    本楼为最佳答案   
本帖最后由 rlz680926 于 2022-11-28 14:42 编辑

Sub test()
Dim regx As Object
Dim i As Integer
Dim j As Integer
Dim arr
arr = Sheets("原表").UsedRange
Set regx = CreateObject("vbscript.regexp")
regx.Global = True '上面大神的语句里加上这句就行
regx.Pattern = "\d+"
For i = 1 To UBound(arr)
    For j = 1 To UBound(arr, 2)
        Sheets("期望表").Cells(i, j) = regx.Replace(arr(i, j), "空")
    Next
Next
End Sub
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-26 16:52 , Processed in 0.834199 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表