excel怎么样将某列所有单元格中文本的非中文字符或数字或字母全部删除?

news2024/11/25 2:53:02

目录

    • 1. 简述
    • 2. 函数功能及参数介绍
      • (1)功能
      • (2)参数介绍
    • 3. 完整VBA代码
    • 4. 宏代码使用方法
    • 5. 效果图

1. 简述

  当我们要处理大量行数的excel数据时候,有时某列中有些行中的单元格内容中含有我们不想要的部分(比如包含一些特殊字符、数字、字母等等),这个时候我们想把这些不想要的部分删除,目前的excel没有相关的函数可以为我们解决这个问题,我们只能自己编写宏函数,实现这个功能,下面是一个功能很完备的宏函数,可以解决这个问题,大家可以直接复制代码到自己的文件中,也可以下载包含这个宏函数的文件,进行使用,宏文件包含多个常用的宏函数,并有详细介绍,大家可以根据需要使用。
 下载链接:https://download.csdn.net/download/u014541881/88036953
 如有特殊功能需求,可关注私信我。

2. 函数功能及参数介绍

(1)功能

 可以实现判断选中单元格是否有指定类的特殊字符,若有则删除,并返回删除后的单元格内容,并将选中的包含指定类特殊字符的单元格字体变红;没有则原样返回,不改变选中单元格字体颜色。

(2)参数介绍

  rng必填参数,代表选中的单元格。
  charType必填参数,代表要查询的特殊字符类型,notchin代表仅判断选中的单元格是否包含非中文汉字类的特殊字符,num代表仅判断选中的单元格是否包含数字类的特殊字符,letter代表仅判断选中的单元格是否包含字母类的特殊字符(包含大小写的字母);cus代表自己指定哪种特殊字符,仅判断选中的单元格是否包含指定的的特殊字符,指定的特殊字符在第三个参数customChars输入,如 “,;!” 代表仅判断选中的单元格是否包含逗号、封号、叹号这三个特殊,注意,第三个函数形参是可选参数,仅在第二个形参为cus的时候才需要输入第三个参数。 若包含参数定义的类型的特殊字符,则将选中的单元格中这些特殊字符逐个删除,并返回处理后的单元格内容,并将选中的包含指定类特殊字符的单元格字体变红;若不包含参数定义类型的特殊字符,则将单元格内容原样返回,不改变选中单元格字体颜色。

3. 完整VBA代码

Function CheckAndRemoveSpecialChars(ByVal rng As Range, ByVal charType As String, Optional ByVal customChars As String = "") As String
    On Error Resume Next ' 忽略可能的错误
    
    Dim cellValue As String
    Dim specialChars As String
    Dim i As Integer
    
    ' 检查参数是否有效
    If rng.Cells.Count > 1 Then
        CheckAndRemoveSpecialChars = "只能选择单个单元格作为参数。"
        Exit Function
    End If
    
    cellValue = rng.Value
    specialChars = ""
    
    ' 判断特殊字符类型
    Select Case charType
        Case "notchin"
            specialChars = "!@#$%^&*()-_=+[]{}|;':,.<>/?`~"
            specialChars = specialChars & GetNonChineseChars()
        Case "num"
            specialChars = "0123456789"
        Case "letter"
            specialChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
        Case "cus"
            specialChars = customChars
        Case Else
            CheckAndRemoveSpecialChars = "输入的第二个参数为无效的特殊字符类型。"
            Exit Function
    End Select
    
    ' 删除特殊字符并返回处理后的单元格内容
    For i = 1 To Len(specialChars)
        cellValue = Replace(cellValue, Mid(specialChars, i, 1), "")
    Next i
    
   If cellValue <> rng.Value Then
        ' 解除单元格保护
        rng.Locked = False
    
         ' 设置字体为红色
         On Error Resume Next ' 忽略可能的错误
         rng.Font.Color = RGB(255, 0, 0)
         On Error GoTo 0 ' 恢复默认错误处理
    
          ' 上锁保护单元格
          rng.Locked = True
   End If
    
    CheckAndRemoveSpecialChars = cellValue
End Function

Function GetNonChineseChars() As String
    Dim nonChineseChars As String
    Dim i As Integer
    
    nonChineseChars = ""
    
    ' 添加非中文字符范围
    For i = 32 To 126
        If Not IsChineseCharacter(ChrW(i)) Then
            nonChineseChars = nonChineseChars & ChrW(i)
        End If
    Next i
    
    GetNonChineseChars = nonChineseChars
End Function

Function IsChineseCharacter(ByVal character As String) As Boolean
    Dim code As Long
    
    code = AscW(character)
    IsChineseCharacter = (code >= &H4E00 And code <= &H9FFF) Or (code >= &H3400 And code <= &H4DBF)
End Function

4. 宏代码使用方法

具体使用方法可仿照文章如何判断某列某个单元格是否包含特殊字符(如空格、数字、下划线等等),并返回特殊字符

5. 效果图

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/743397.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

功率开关集成电路TWH8751路灯自动控制器/双D触发器CD4013路灯控制器电路设计

采用功率开关集成电路TWH8751的路灯自动控制器 本例介绍的光控路灯&#xff0c;在白天不工作&#xff0c;夜晚能自动点亮&#xff0c;可用于街道或农村场院等场合 。 一、电路工作原理 电路原理如图 19 所示。 该光控路灯电路由电源电路和光控电路组成&#xff0c;如图所示…

Latch up (闩锁效应)

Latch-up latch up 是指cmos晶片中, 在电源power VDD和地线GND(VSS)之间由于寄生的PNP和NPN双极性BJT(Bipolar Junction Transistors)相互影响而产生的一低阻抗通路, 它的存在会使VDD和GND之间产生大电流。    In the simplest way, the latch-up issue can be defined as a …

ModaHub魔搭社区:AI原生云向量数据库MIlvus Cloud实现 HNSW

实现 HNSW HNSW 并不简单,因此我们只在此处进行最简单的实现。像之前一样,我们首先创建一组(128 维)向量的数据集: >>> import numpy as np >>> dataset = np.random.normal(size=(1000, 128)) 第一步是构建 HNSW 索引。为此,我们需要将每个向量添加…

前端基础知识学习——圆角、透明圆角(十四)

文章目录 圆角方法一圆角方法二&#xff08;推荐&#xff09;透明圆角方法一透明圆角方法二&#xff08;推荐&#xff09; 圆角方法一 /* 添加圆角 方法1&#xff1a;border-radius cs3不兼容*/.bo{width: 100px; height: 200px;border: 1px solid #e5e5e5;margin:30px aut…

DMA-GD32

DMA-GD32 DMA模块包括DMA控制器、主模式控制电路、从模式控制电路和数据通道FIFOS. 主、从模式控制电路分别负责控制DMA模块在PCle总线的主模式和从模式下的工作状态 FIFOS实现数据缓冲通道,对总线端的高速信号和外设上本地低速信号进行速率匹配和缓冲 DMA模块的上述结构使得它…

政府-管制

垄断带来的问题 政府以四种方式中的一种对垄断问题作出反应 管制垄断者的行为努力使垄断行业更有竞争性:反垄断(反托拉斯)把一些私人垄断变为公有企业什么也不做管制 政府管制垄断者收取的价格。 如果价格定在边际成本上,资源配置就将是最有效率的。 自然垄断的边际成本定…

centos7.9php8swoole5swoft2环境安装遇到确实redis扩展的解决办法

1、环境介绍 运行系统&#xff1a;centos7.9 php版本&#xff1a;php8.0.29 swoole版本&#xff1a;swoole5 swoft版本&#xff1a;swoft2.02、遇到的问题 The requested PHP extension ext-redis * is missing from your system. Install or enable PHPs redis extension。这…

流量监控异常行为分析案例

分析原理 正常的基于TCP的网络流量&#xff0c;都是先建立TCP连接&#xff0c;再传输数据&#xff0c;然后断开连接。 而网络中经常存在中毒系统、配置错误等问题&#xff0c;导致网络中存在单向请求现象&#xff0c;这些信息也会在网络流量中体现。 NetInside自动发现大量连…

easyphp

说起来是easy但是&#xff0c;代码审计对于我来说有点小难 唯一觉得好的地方是因为基本上每一步都有回显&#xff0c;可以依照回显一步步注入 <?php highlight_file(__FILE__); $key1 0; $key2 0;$a $_GET[a]; $b $_GET[b];if(isset($a) && intval($a) > 60…

apple pencil一代的平替有哪些品牌?苹果平板的触控笔

随着苹果Pencil系列的推出&#xff0c;平替电容笔在国内市场得到了较好的发展&#xff0c;随之的销量&#xff0c;也开始暴涨&#xff0c;苹果pencil因为价格太高&#xff0c;导致很多人买不起。目前市场上&#xff0c;有不少的平替电容笔&#xff0c;可以替代苹果的Pencil&…

总结925

目标规划&#xff1a; 月目标&#xff1a;7月&#xff08;高等数学强化18讲&#xff0c;英语真题4套&#xff0c;数据结构&#xff09; 周目标&#xff1a;高等数学强化前5讲回顾&#xff0c;英语06年真题一套&#xff0c;数据结构第3章习题 每日规划 今日已做 1.早读&#…

普通人怎么实现财务自由?

有道无术&#xff0c;术尚可求也&#xff1b;有术无道&#xff0c;止于术。你好&#xff0c;我是程序员雪球&#xff0c;今天一起来聊聊普通人怎么实现财务自由&#xff1f; 作为普通人&#xff0c;怎么实现财务自由&#xff1f;其实只需要做好三件事&#xff1a;减少日常花销&…

一篇文章让你搞懂字符函数+字符串函数

List item 前言 C语言中对字符和字符串的处理很是频繁&#xff0c;但是C语言本身是没有字符串类型的&#xff0c;字符串通常放在常量字符串中或者字符数组中 字符串常量适用于那些对它不做修改的字符串函数 1.求字符串长度 1.1strlen 其返回值是一个size_t的无符号给整型 …

基于vue的MOBA类游戏攻略分享平台

本系统为了数据库结构的灵活性所以打算采用MySQL来设计数据库&#xff0c;而java技术&#xff0c;B/S架构则保证了较高的平台适应性。本文主要介绍了本系统的开发背景&#xff0c;所要完成的功能和开发的过程&#xff0c;主要说明了系统设计的重点、设计思想。

RK3588国产开发板Debian系统安装虚拟键盘

当我们在使用 debian 系统的时候&#xff0c;如果想要进行输入&#xff0c;无可避免地要外接键盘。当我们的 输入量不大的时候可以进行虚拟键盘的安装。具体步骤如下&#xff1a; 首先使用以下命令&#xff0c;对 onboard 虚拟键盘进行安装&#xff0c;如下图所示&#xff1a…

Python(四):Pycharm的安装配置

❤️ 专栏简介&#xff1a;本专栏记录了我个人从零开始学习Python编程的过程。在这个专栏中&#xff0c;我将分享我在学习Python的过程中的学习笔记、学习路线以及各个知识点。 ☀️ 专栏适用人群 &#xff1a;本专栏适用于希望学习Python编程的初学者和有一定编程基础的人。无…

微软MFC技术中的消息队列及消息处理(下)

我是荔园微风&#xff0c;作为一名在IT界整整25年的老兵&#xff0c;今天来聊聊微软MFC技术中的消息队列及消息处理。 MFC应用程序中由Windows 系统以消息的形式发送给应用程序的窗口。窗口接收和处理消息之后&#xff0c;把控制返回给Windows。Windows系统在同一时间可显示多…

道路与航线(SPFA+双端队列优化)

题意&#xff1a;给了若干条道路&#xff0c;道路是双向边&#xff0c;航线是单向边&#xff0c;给了一些政策&#xff0c;如果从a到b有一条航线&#xff0c;那么一定不能通过一些道路和一些航线&#xff0c;从b到a。 分析&#xff1a;因为有负边权存在&#xff0c;所以这道题…

Sentinel系统规则

Sentinel 系统规则 ​ Sentinel 系统自适应限流从整体维度对应用入口流量进行控制&#xff0c;结合应用的 Load、CPU 使用率、总体平均 RT、入口 QPS 和并发线程数等几个维度的监控指标&#xff0c;通过自适应的流控策略&#xff0c;让系统的入口流量和系统的负载达到一个平衡…

8266使用巴法云OTA

为了使用方便把OTA封装一下为以下类 #include "ESP8266HTTPUpdate.h"class OTA { private:ESP8266HTTPUpdate httpUpdate;// using HTTPUpdateStartCB std::function<void()>;void OnStartCB(){Serial.println("开始OTA升级");}// using HTTPUpdat…