单元格中指定字符间文本去除的研究

来源 :现代信息科技 | 被引量 : 0次 | 上传用户:oliu1113
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘  要:Excel是使用非常广泛的办公软件体系之一,自身带有多种类型、可实现多种功能的内置函数,但仍不能完全满足一些用户的特殊功能使用要求。基于此,Excel提供了宏功能,满足用户通过自定义的方式开发独特功能的使用需求。利用VBA的宏编程技术,通过自定义Excel函数,实现Excel单元格数据中指定字符间文本的批量去除功能,同时提供指定字符去除或保留两种实现模式的解决方案。
  关键词:VBA;指定字符;文本去除
  中图分类号:TP317      文献标识码: A 文章编号:2096-4706(2021)02-0032-03
  Abstract:Excel is one of the more widely used office software systems. It has many types of built-in functions to realize many functions,but it still cannot fully meet the usage requirements of special functions of some users. In view of this,Excel provides macro functions to satisfy user’s usage requirements that develop unique functions through self-definition way. Using the macro programming technology of VBA and through self-definition of Excel function,the batch removal function of the text between the specified characters in the Excel cell data is realized. At the same time,two implementation modes of solutions removing or retaining of the specified characters are provided.
  Keywords:VBA;specified character;text removal
  0  引  言
  Excel是微软公司Office办公软件体系中的主要模块之一,Excel为普通用户提供各式各样的数据处理、数据分析、数据计算方法。但在一些需要独特操作,使用小众的运算方面,利用Excel提供的各种函数可以分次组合计算实现独特的功能,在实际操作中,虽然能够满足用户的特殊需求,但重复性操作步骤多,影响实际工作效率,此时可考虑利用Excel的宏开发功能,对重复性步骤进行整合编程处理,以自定义运算的方式简化工作步骤。
  1  问题提出
  在实际工作中,经常遇到一些问题,需要批量去除单元格数据中的括号及括号中的内容,并且需要去除的内容在单元格字符串中的位置并不固定。如在学生学籍管理工作中,规范的专业名称不带括号及括号中的专业方向,但多数原始数据中的专业名称后均带有括号及括号中的专业方向。对于此类数据,在数据规范化处理时,需要批量去除专业名称后面的括号及括号内的专业方向名称。
  对于此类问题,可通过Excel的筛选,手动小批量删除同内容数据的括号及括号中的文本,或者使用Excel提供的MID、LEFT、RIGHT等字符串函数根据原始数据的不同进行分类处理。不管采用哪种方式,在实际操作中均存在操作步骤多、使用烦琐的问题。如何利用Excel的宏功能将步骤多而烦琐的操作进行集成化处理,是本文将要着重讨论和解决的问题。
  同时,可将此类问题引申为,对于给定的已知Excel单元格字符串,可通过指定开始位置的字符和结束位置的字符来实现Excel单元格中字符串的特征化批量删除。这尤其适用于需要批量去除的文本在整个字符串中的位置不固定的情形。
  2  问题分析
  以实际问题为例进行分析,如图1所示Excel表格,已知A列,批量生成B列。
  通過分析上图可以得出,需要批量去除的字符串均在括号内并且连同括号一同去除。同时,A列数据中需要去除的字符串缺少规律性且在原字符串中的位置并不固定。
  Excel自带的LEFT、RIGHT函数,具有从左往右和从右往左按字符数生成新字符串的功能。故解决问题的核心可转化为求A列单元格数据字符串中括号位置的问题。
  利用Excel自带的函数实现功能的具体步骤分析为:
  (1)利用Excel自带的函数LEN实现字符串长度的计算,该长度可作为程序循环模块中的循环次数控制变量。
  (2)利用Excel自带的函数MID实现字符串文本的逐个提取,通过将提取出的字符和指定字符相比对,可以确定是否到达删除字符串的起始位置及结束位置。
  (3)当判断出MID函数提取的字符等于指定开始字符时,可记录当前字符在字符串中的位置数。
  (4)当判断出MID函数提取的字符等于指定结束字符时,可记录当前字符在字符串中的位置数。
  (5)通过记录的位置数,综合利用Excel自带的LEFT、RIGHT函数,获取所需的头尾字符串,使用Execl提供的字符串连接运算符“&”连接形成最终需要的字符串。
  上述步骤中,为了实现指定字符的去除与否控制,在自定义Excel函数时,通过附加一个判断参数,进一步拓展自定义函数的功能,使自定义函数具有按照用户要求实现是否保留指定字符的功能。   综上所述,利用Excel自身支持的VBA宏编程功能,通过自定义实现符合用户特殊需求的函数,依赖该函数让Excel具有一次性解决上述问题的能力,简单直接的解决同类问题。
  3  问题解决
  3.1  VBA简介
  Visual Basic for Applications(VBA)是Visual Basic的一种宏语言,主要用来扩展Windows的应用程式功能,特别是Microsoft Office软件,也可说是一种应用程式视觉化的Basic Script。1994年发行的Excel 5.0版本中,即具备了VBA的宏功能。
  3.2  基本算法描述
  首先,设需要处理的目标单元格为S,其次,利用LEN求源字符串的字符个数,即长度,再次,以长度为循环依据,使用判断语句逐字符判断是否为指定开始字符或指定结束字符,如是,记录指定开始字符或指定结束字符位置数,最后,利用已记录位置及Excel自带函数LEFT和RIGHT综合生成用户需要的单元格内容。
  3.3  基本算法实现
  设有字符串s为a1,a2,…,an,b1,b2,…,bm,c1,c2,…cp,其中n,m,p均为随机自然数,需求a1,a2,…,an,c1,c2,…cp或a1,a2,…,an,x,y,c1,c2,…cp。
  设已知字符串长度为c则,c=n+1+m+1+p;
  设字符x位置为x1,则x=n+1;
  设字符y位置为y1,则y1=n+1+m+1;
  即a1,a2,…,an,c1,c2,…,cp=LEFT(s,x1-1) & RIGHT(s,y1+1),a1,a2,…,an,x,y,c1,c2,…cp=LEFT(s,x1) & RIGHT(s,y1)。
  3.4  程序基本流程图
  自定义Excel函数的程序基本流程图如图2所示。
  流程图的主要内容为:
  (1)前期数据处理包括函数定义、变量定义,求目标字符串长度并以该长度为依据设立循环。
  (2)每取到字符串中的一个字符,便利用指定开始字符、指定结束字符做判断。如相等,则记录该字符在字符串中的位置,如不相等,则继续取下一个字符,循环往复,直到遍历字符串中的所有字符。
  (3)利用函数定义中指定的功能控制参数进行分支选择,结合上一步中记录的指定开始字符和指定结束字符的位置数,按照用户需求计算保留指定字符或不保留指定字符的目标字符串。
  3.5  功能实现代码
  利用Excel的VBA宏编辑器,新建一个模块并输入以下代码:
  Function tqnr(mb As Range, fh1 As String, fh2 As String, hf As Boolean) As String
  //函数定义,函数名tqnr,数据类型字符串型。该函数同时定义4个参数,第一个参数为mb,用于单元格引用控制,数据类型单元格型;第二个参数为字符型变量fh1,用于接收用户指定的开始字符;第三个参数为字符型变量fh2用于接收用户指定的结束字符;第四个参数为布尔型功能控制参数,用于接收用户对功能的選择要求,如为TRUE,则表示用户需要去除指定的字符,如为FALSE,则表示用户不需要去除指定的字符。
  Dim c As Integer    //定义整型变量c,用于存放需处理字符串的长度数值。
  If hf = True Then    //通过参数hf控制是否需要保留指定字符的功能选择。
  c = Len(mb.Text)   //求需处理字符串的长度数值。
  d1 = 1
  d2 = 0//定义整形变量d1和d2,用于存放指定开始字符和指定结束字符在字符串中的位置数,同时对d1和d2赋初值做初始化处理。
  For i = 1 To c//循环开始,通过循环遍历需处理字符串中的每个字符。
  txt = Mid(mb, i, 1)    //定义字符型变量txt用于临时存放需处理字符串中的每个字符。
  If txt = fh1 Then d1 = i       //确定指定开始字符在字符串中的位置。
  If txt = fh2 Then d2 = i       //确定指定结束字符在字符串中的位置。
  Next i
  tqnr = Left(mb, d1 - 1) & Right(mb, c - d2)  //输出函数值,不保留指定字符及字符间内容的字符串。
  End If
  If hf = False Then
  c = Len(mb.Text)
  d1 = 1
  d2 = 0
  For i = 1 To c
  txt = Mid(mb, i, 1)
  If txt = fh1 Then d1 = i
  If txt = fh2 Then d2 = i
  Next i
  If d1 <> 1 Then
  tqnr = Left(mb, d1 - 1) & fh1 & fh2 & Right(mb, c - d2)   Else: tqnr = Left(mb, d1 - 1) & Right(mb, c - d2)  //输出函数值,保留指定字符,但去除指定字符间内容的字符串。
  End If
  End If
  End Function
  4  自定义函数使用说明
  利用Excel的宏编程功能,自定义了函数tqnr,该函数同时带有四个参数。第一个参数为函数处理目标的指定(单元格型);第二个参数为去除文本开始字符的指定(字符型);第三个参数为去除文本结束字符的指定(字符型);第四个参数为是否保留指定字符的控制(布尔型)。
  在如图3所示的Excel工作表中,通过在B2单元格中输入自定义的函数tqnr,使用填充句柄进行填充后,可以快速地得到如图4所示的结果。
  5  结  论
  在分析Excel宏开发功能的基础上,对于本文提出的具体问题,即从多种类字符串单元格中,对指定字符及字符间的内容批量去除功能,进行了步骤分解和分析。在此基础上,提出了功能实现的算法描述,并通过VBA的宏编程功能开发了功能实现代码。
  在实际工作中,面对几十个不同的专业名称,成千上万条学生学籍信息记录,相较以往的逐专业筛选,逐专业批量复制的处理方式。该方法不受专业类型多少,数据记录条数多少的影响,一次性、批量化地得出用户所需的数据。极大地提高了工作效率,并且,用户处理的数据量越大,该方法的效率提升越明显,在实际工作中具有极高的使用价值。
  参考文献:
  [1] 高楠,李紅霞.利用Excel的宏功能实现多数据类型单元格中纯数字的提取 [J].计算机产品与流通,2017(9):197.
  [2] 李晓玫,杨小平.Excel中的VBA程序设计 [J].四川师范大学学报(自然科学版),2004(4):96-99.
  [3] 杨天生.VBA在高效办公中的应用 [J].机械工程师,2017(9):145-146.
  [4] 张怡芳.Excel自定义函数的编制与实例 [J].计算机与现代化,2001(2):130-135.
  [5] 孔德宏.在EXCEL中基于VBA的学生基本情况调查表的设计与实现 [J].企业导报,2011(6):254-255.
  [6] 高楠,石蕊,李红霞.根据身份证号直接计算年龄的EXCEL实现 [J].计算机产品与流通,2017(10):37.
  作者简介:高楠(1982—),女,汉族,河北定州人,讲师,毕业于兰州交通大学,硕士研究生,主要研究方向:计算机应用、通信工程;徐刚(1980—),男,汉族,河南洛阳人,讲师,毕业于兰州交通大学,硕士,主要研究方向:计算机应用、网络通信技术。
其他文献
摘要:“构建社会主义和谐社会”是党的十六届四中全会提出的新命题。学校作为“大社会”范畴内的“小社会”, 应努力建构和谐校园。  关键词:以人为本;和谐教育;和谐校园    和谐,这一古老而常新的教育话题,体现了以人为本的教育理念。“人本”教育思想的最好体现正是学校管理和谐的追求目标。校园奏响和谐的旋律,必将为学生的发展注入活力,必将为学生的终生发展奠定宽厚的基础。教育只有在和谐中才能发展,学校在发
期刊
所谓教师不良物欲,指的是教师个体将获取物质财富作为自己工作的主要追求甚至唯一追求的一种心理现象。其外部表现为,经常置他人利益与民族利益于不顾,采取违背教师职业道德等行径去牟取个人私利。  当今,在我国,教师的不良物欲倾向虽然还没有造成明显的大面积的灾难性后果,但确实已经达到了足以令有志之士高度关注的地步。像“教育乱收费”、“视奖金做工作”、“歪家教”、打牌赌博、买“六合彩”等等,这些都充分证明教师
期刊
一、反思型教师及其校本培训    (一)反思型教师的特征  1.在教学过程中更具有“学生倾向性”,备课时能够判断学生的认知水平、原有的知识结构,了解学生的思维特点,在教学实践中能够敏锐意识到学生的学习需求和感受,从而不断调整策略,在极端之间去寻求一个最有效的行使职能的地位。  2.反思型教师能更有意识地作为“学生发展的促进者”,在教学过程中更具长远的观点,注重学生学习能力的培养,同时也根据学生的智
期刊
摘要:校园文化管理是一项系统工程,它具有自己独特的优势。当代校园文化管理是“以人为本”的人本文化之一,也是以软性管理为主的文化内化过程。本文认为当代校园人本文化管理具有二大特点、三大策略和四个管理途径。  关键词:校园文化;管理;以人为本    校园文化既是学校管理的基本内容和结果,也是衡量一所学校管理水平的重要标志。从现代管理学的视角来看,校园文化管理就是一项以人为本的系统管理工程,它是自觉的校
期刊
沈阳市沈河区文艺二校坐落在沈阳的中心城区,是一所拥有48个教学班、2300多名学生,139位教职工的窗口小学。近几年,在科学发展观的统领下,坚持学校文化谱心曲,人文情怀铸校魂,较有成效地加强了学校文化的建设。    一、提升,靠学校文化建设提升发展品位    靠学校文化建设提升发展品位的认识,我们有一个实践和深刻反思的过程。作为领导和管理者,基本是停留在行政管理层面的带头作用,而忽视了在文化层面的
期刊
如何培植教师专业发展新的生长点?是当下学校管理者所关心的热门话题。笔者结合有关资料的学习,给出以下几则小案例,并通过对以下几个小案例的剖析反思,或许能给教师的专业发展有所启迪。    1.教师的专业发展要细化目标    案例 1984年,在东京国际马拉松邀请赛中,名不见经传的日本选手山田本一出人意料地夺得了世界冠军。当记者问他凭什么取得如此惊人的成绩时,山田本一笑笑说:“凭智慧战胜对手!”在场的记
期刊
摘要:随着现代信息技术的发展,越来越多的教育工作者将现代信息技术逐步引入课堂之中。文章以新兴的工业机器人技术专业为例子来说明,在理论教学与实践教学同样重要的前提下,根据高职学生的特点,如何利用现代信息技术高质量地开展教学。通过利用学习通平台进行线上线下混合式教学,证明混合式的教学模式比传统的教学模式更具有优势,适应高职学生的学习方式,极大地提升了教学质量。  关键词:学习通;工业机器人技术专业;混
期刊
关于召开中国教育学会教育管理分会2006年理事会暨学术年会的通知  经2005年11月和12月教育管理分会两次常务理事会研究,决定于2006年9月在沈阳召开教育管理分会第五届第二次全体理事会。现将有关事项通知如下:  一、大会主要议程:   1.教育管理分会理事会;  2.各学术委员会会议;  3.学术研讨。  二、大会主题:  依据“有用、有效、有话说”的原则,结合教育部基教司2006年工作重点
期刊
管而有度,理而有节,乃管理的最高境界矣。谈“潜规则”文化里的管理,其实,“潜规则”有时就像一包“人情味”,有时又像一包“火药味”。如,每到期终,对一学期来校长过程管理的考评,教师给打出的分值,彰显出来的就富有浓浓地“人情味”。如,有的校长努力拼搏,总想干出一番事业,结果事与愿违,他的长短叹息和抱怨等,它就多会充满“火药味”。管是刚性的规章制度的约束,理是柔性的疏导和健康的感情分流,不管是“人情味”
期刊
摘 要:以增加高校科研管理系统安全性为目的,对现有高校科研管理系统存在的安全隐患进行了分析,探讨国内对计算机信息系统等级保护标准中各个等级所提出的要求,在此基础上,引入了可信计算平台,提出基于可信计算平台的高校科研管理系统等级保护方案,描述其具体的实施过程,分析结果表明:实施可信计算平台后的高校科研管理系统达到国家信息安全等级保护要求。  关键词:科研管理系统;等级保护;可信计算平台;访问控制;安
期刊