↓↓↓欢迎关注我的公众号,在这里有数据相关技术经验的优质原创文章↓↓↓

在Excel中经常会遇到去除所有的中文,英文或者数字等情况。但是由于Excel并不支持一次替换所有的中文,英文,数字等,所以有些解决方法是复制到Word中进行替换,但是这种方法个人感觉比较麻烦不好用,因此提供一个利用VBA解决这个问题的方法.

具体操作如下:

使用“Alt+F11”打开开发者选项,在点击左侧的任意一个sheet,复制下面的代码内容,再点击左上角的绿色三角箭头运行即可

代码内容如下:

整个工作簿的所有sheet删除中文:

Sub remove_cn_char()
Dim Rng As Range
Dim Reg
Set Reg = CreateObject("vbscript.regexp") '建立正则表达式
Reg.Pattern = "[\u4e00-\u9fa5]" '去汉字样式
Reg.Global = True '设置全局可用
For Each sh In Worksheets '遍历所有的sheet
For Each Rng In sh.UsedRange '遍历所有的单元格
On Error Resume Next '防止一些错误值引起的报错
Rng = Reg.Replace(Rng, "")
Next
Next
End Sub

删除特定sheet中的英文

Sub remove_cn_char()
Dim Rng As Range
Dim Reg
Set Reg = CreateObject("vbscript.regexp") '建立正则表达式
Reg.Pattern = "[a-zA-Z]" '去英文样式
Reg.Global = True '设置全局可用
With Sheets("test") ‘设置要替换的sheet名称
For Each Rng In sh.UsedRange
On Error Resume Next '防止一些错误值引起的报错
Rng = Reg.Replace(Rng, "")
Next
End With
End Sub

在上述代码中,我们通过正则表达式对Excel中的中英文进行替换。如果需要替换不同的内容,则替换上述代码中的正则表达式样式即可。我们常用的正则表达式样式如下:

  • 匹配中文字符的正则表达式:[\u4e00-\u9fa5]
  • 匹配双字节字符(即中文输入法状态下的所有输入字符,例如中文,中文标点符号等)的正则表达式:[^\x00-\xff]
  • 英文字母:[a-zA-Z]
  • 数字:[0-9]

当然如果你有其他的特殊的规则,也可以自己百度或书写相关正则表达式进行删除或替换。

替换中英文字符

有的时候处理文本使我们需要替换对应的中英文字符而非删除,例如需要对照两个文本,但是两个文本中的标点符号不一致,有的是中文,有的是英文,因此需要将两个文本中的符号统一。下面的程序可将中文标点符号替换为英文标点符号:

Sub test()
Dim ar, br, cr, r&, c&, i&, j&, m&
br = Array(",", "\", ".", "!", "?", ";", ":", "'", "'", """", """", "[", "]", "{", "}", "(", ")")
cr = Split(",,、,。,!,?,;,:,‘,’,“,”,【,】,{,},(,)", ",")
With ActiveSheet
With .UsedRange
ar = .Value
r = .Row
c = .Column
End With
On Error Resume Next
For i = 1 To UBound(ar)
For j = 1 To UBound(ar, 2)
For m = LBound(cr) To UBound(cr)
ar(i, j) = Replace(ar(i, j), cr(m), br(m))
Next m
Next j
Next i
.Cells(r, c).Resize(UBound(ar), UBound(ar, 2)) = ar
End With
End Sub

同理,需要英文转中文,或者需要添加其他字符的话直接修改对应的br和cr即可

利用VBA批量删除Excel中的中文/英文/数字或者替换中英文符号的更多相关文章

  1. sql 查询字段是中文/英文/数字 正则表达式

    一.包含中文字符 select * from 表名 where 列名 like '%[吖-座]%' 二.包含英文字符 select * from 表名 where 列名 like '%[a-z]%' ...

  2. C# 删除字符串中的中文

    /// <summary> /// 删除字符串中的中文 /// </summary> public static string Delete中文(string str) { s ...

  3. Java利用POI导入导出Excel中的数据

         首先谈一下今天发生的一件开心的事,本着一颗android的心我被分配到了PB组,身在曹营心在汉啊!好吧,今天要记录和分享的是Java利用POI导入导出Excel中的数据.下面POI包的下载地 ...

  4. SQLServer 命令批量删除数据库中指定表(游标循环删除)

    DECLARE @tablename VARCHAR(30),@sql VARCHAR(500)DECLARE cur_delete_table CURSOR READ_ONLY FORWARD_ON ...

  5. 利用sql批量删除表,存储过程

    利用sql批量删除表,存储过程. 最近用godaddy的空间,由于系统里面的表多,一个个的删除很麻烦,就网上搜集了一下解决方法. 给大家分享一下: 1.批量删除存储过程 declare @procNa ...

  6. 批量删除Excel里面的换行符

    关于批量删除excel里面的换行符,应该说写程序的遇上excel大体都会有这么个问题,在解决这个问题前,我的解决办法是把excel 的数据全部复制到txt里面, 因为操作txt比操作excel更为简单 ...

  7. SQL触发器批量删除数据库中的表

    以下通过触发器批量删除数据库中的表,SQL2008已验证 DECLARE @Table NVARCHAR() DECLARE @Count Int = DECLARE tmpCur CURSOR FO ...

  8. 如何批量删除Docker中已经停止的容器

    如何批量删除Docker中已经停止的容器   方法一: #显示所有的容器,过滤出Exited状态的容器,取出这些容器的ID, sudo docker ps -a|grep Exited|awk '{p ...

  9. 批量删除Windows7中隧道适配器的方法

    批量删除Windows7中隧道适配器的方法 1.在网卡属性的"网络"中,将"Internet协议版本(TCP/IPv6)"前面的勾去掉. 2.在CMD下分别执行 ...

  10. Python批量修改Excel中的文件内容

    import osimport xlrdfrom xlutils.copy import copydef base_dir(filename=None):    return os.path.join ...

随机推荐

  1. 行为识别TSM训练ucf101数据集

    序言 最近有个行为检测的需求,打算用行为识别做,纯小白入这个方向,啃了两周的TSM原理和源码,训练好自己的数据集后,发现好像没法应用到自己的需求场景??玛德!算了,还是要记录一下.原理就没别要讲了,网 ...

  2. 线程,yield()

    一.定义:暂停当前正在执行的线程对象,并执行其他线程 yield()应该做的是让当前运行线程回到可运行状态,以允许具有相同优先级的其他线程获得运行机会. 因此,使用yield()的目的是让相同优先级的 ...

  3. K8S 部署 Deepseek 要 3 天?别逗了!Ollama+GPU Operator 1 小时搞定

    最近一年我都在依赖大模型辅助工作,比如 DeepSeek.豆包.Qwen等等.线上大模型确实方便,敲几个字就能生成文案.写代码.做表格,极大提高了效率.但对于企业来说:公司内部数据敏感.使用外部大模型 ...

  4. FastAPI数据库集成与事务管理

    title: FastAPI数据库集成与事务管理 date: 2025/04/18 00:15:34 updated: 2025/04/18 00:15:34 author: cmdragon exc ...

  5. 【记录】Excel 2021|(三)VBA使用Selenium自动登录网页

    文章目录 1 安装 Selenium Basic 2 下载webdriver 3 自动登录 1 安装 Selenium Basic 首先需要安装Selenium Basic,才能在工具栏中找到Sele ...

  6. K8s进阶之Deployment的更新&回滚

    更新概述 更新指的是对 Deployment 所管理应用的配置.镜像版本等进行修改并应用到集群中的过程.通过更新 Deployment,你能够实现应用功能的升级.修复漏洞.调整资源分配等操作. 更新触 ...

  7. 遇到过的错误之“日期计算错误,Java8API导致Unsupported unit: Seconds【时间类错误】"

    一.问题 场景:在计算相差天数时爆出的错误 报错内容:java.time.temporal.UnsupportedTemporalTypeException: Unsupported unit: Se ...

  8. web框架实例

    s5.py from wsgiref.simple_server import make_server def handle_index():     return [b'<h1>Hell ...

  9. Unity ML-Agents实战指南:构建多技能游戏AI训练系统

    引言:游戏AI训练的技术演进 在<赛博朋克2077>的动态NPC系统到<Dota 2>OpenAI Five的突破性表现中,强化学习正在重塑游戏AI边界.本文将通过Unity ...

  10. arcgis创建sqlserver企业级空间数据库过程中出现的问题及解决方案

    在arcgis中创建sqlserver版本的企业空间数据库过程中,出现了多种问题,现把问题的现象.原因和解决方案记录下来,以防遗忘(年纪大了). 1 用sa账号创建空间数据库提示创建失败15456 安 ...