删除字符串中出现字符最少的字符(字符串中删除指定长度及根据固定字符删除)
删除字符串中出现字符最少的字符(字符串中删除指定长度及根据固定字符删除)
2024-11-22 01:13:46  作者:江山棋局  网址:https://m.xinb2b.cn/know/ecn532251.html

分享成果,随喜正能量】这里,有你,有我,有他们,我们能从中看到无数身边人的影子,他们是时代的既得利益者,也有受时代改变的先行者,更有发展阵痛下的承受者,他们都是时代进步下的改革者,历史的见证者。。

《VBA经典应用69例》,是我推出的第九套教程,教程是专门针对初级、中级学员在学习VBA过程中可能遇到的案例展开,这套教程案例众多,紧贴“实战”,并做“战术总结”,以便大家能很好的应用。教程的目的是要求大家在实际工作中要利用好VBA。本套教程共三册六十九个专题,今日内容是教程的应用7:字符串中删除指定长度及根据固定字符删除


应用7 利用VBA,从字符串中删除字符

我们这个专题的内容是字符串String的处理,在我的各套教程中一直把字符串处理作为一项非常重要的知识点来讲解。对于VBA语言而言,字符串操作是编程中的关键技能。VBA 开发人员的技能水平通常取决于他操纵字符串的程度。Excel 在数学操作方面非常强大,但文本操作却需要我们具有一定的创造力和经验。

在本专题中,我将向展示如何从字符串中删除字符,学习如何通过替换、左、右、修剪和 Instr函数功能来处理它们。

3 从字符串的左侧或者右侧删除指定长度的字符

我们继续研究删除字符的各种情况,这个应用场景是在给定字符串的左侧和右侧删除给定长度的字符,如某个ID号类似于“X123456789”,我们需要从左侧删除一个字符,这种情况下我们可以利用Right函数;再比如,类似于”01234567K”数据,我们需要从右侧删除最后的一个字符,这种情况下我们可以利用Left函数。对于这两个函数,比较简单,我就不再讲解了,直接讲解我给出的实例。

实例四:从字符串的左侧或者右侧删除指定长度的字符 如下面的截图界面:


在A列有一系列的数据,我们要删除左侧第一个字符放在B列,删除右侧最后一个字符放在C列,下面我将利用Righth函数和Left函数来完成,代码如下:

Sub mynzD()

Dim myCell As Range

Dim MyRange As Range

Dim tmp As String

'指定数据区域

Set MyRange = Range("A2:A9")

'遍历循环提取字符串

For Each myCell In MyRange.Cells

tmp = myCell.Value

'提取右侧 Len(tmp) - 1个字符

myCell.Offset(0, 1).Value = ""

myCell.Offset(0, 1).Value = "'" & Right(tmp, Len(tmp) - 1)

'提取左侧 Len(tmp) - 1个字符

myCell.Offset(0, 2).Value = ""

myCell.Offset(0, 2).Value = "'" & Left(tmp, Len(tmp) - 1)

Next

End Sub

代码截图:


代码的讲解:

① myCell.Offset(0, 1).Value = "'" & Right(tmp, Len(tmp) - 1)与myCell.Offset(0, 2).Value = "'" & Left(tmp, Len(tmp) - 1) 这两句代码在前面均有 "'" ,这是为了以文本格式进行回填数据的需要。

② 去掉源数据最左边的字符用的是右截取;去掉源数据最右边的字符用的是左截取,截取的长度是“总长度-1”。

最后我们看一下代码的运行效果:


4 根据指定的固定字符进行删除操作

我们继续讲解字符串的操作,这部分我们讲解如何根据指定的固定字符进行字符串的删除操作。我们看这样的一个操作:对于一个电子邮件,如nesang@189.cn,我们需要删除邮件中的189.cn这个域名,该如何进行字符串的操作呢?

这种情况下,我们可以通过VBA中的Instr函数首先找出"@"的位置,要删除域名,我们必须提取"@"的前的所有字符。

实例五:根据指定的固定字符进行删除操作

下面我们以批量操作来讲解,如下面的截图:


下面看我给出的代码:

Sub mynzE()

Dim myCell As Range

Dim MyRange As Range

Dim tmp As String

'指定数据区域

Set MyRange = Range("A12:A15")

'遍历循环提取字符串

For Each myCell In MyRange.Cells

tmp = myCell.Value

'提取"@"左侧 字符

myCell.Offset(0, 1).Value = ""

myCell.Offset(0, 1).Value = "'" & Left(tmp, InStr(tmp, "@") - 1)

Next

End Sub

代码截图:


代码的解读:

① Left(tmp, InStr(tmp, "@") - 1)是提取"@"左侧 字符。

② InStr(tmp, "@")是获取"@"在字符串中位置。

最后我们看代码的运行结果:


(待续)

本讲内容参考程序文件:应用007.xlsm


我20多年的VBA实践经验,全部浓缩在下面的各个教程中:



分享成果,随喜正能量】努力总是与幸运成正比,今天的努力,从来不会被辜负,希望明天的你,只有惊喜,没有失望,未来可期。。

  • 河南南阳市哪个县城建机场(河南省信阳市的这个小镇)
  • 2024-11-22河南省信阳市的这个小镇明港镇虽然是一个镇,但这里交通便利,机场、高铁站、火车站,它都有了明港镇隶属于河南省信阳市平桥区信阳明港机场信阳明港机场位于河南省信阳市平桥区明港镇明港火车站明港火车站位于河南省信阳市平桥区明港镇,2。
  • 新天龙八部峨眉全攻略
  • 2024-11-22新天龙八部峨眉全攻略【关于峨眉】25级到29级,可以参与游戏中的一些组队玩法了,这些活动的组队,都缺少不了峨眉职业峨眉是游戏中唯一可以治疗的职业,是游戏中通关副本和活动最安全的保障峨眉门派还是远程攻击职业,在游戏中非常的。
  • 二月二全网最硬核龙抬头(二月二龙抬头银河掠夺者带你遨游星际)
  • 2024-11-22二月二龙抬头银河掠夺者带你遨游星际遨游太空一直都是每个人的梦想谷得旗下有一款叫做《银河掠夺者》的游戏,大片即视感的游戏画面,酷炫而迷人在这个游戏里,你可以操控自己的太空舰队,自由穿梭于星际之间对于视觉控来说,一款游戏的美术画面永远是他。
  • 柏拉图式的感情经历(柏拉图式的爱是什么状态)
  • 2024-11-22柏拉图式的爱是什么状态我们生活中经常会听到有人会说自己追求的是柏拉图式的爱,但感觉太难了,对方总是爱我的身体我们今天就来了解一下到底柏拉图式的爱情是种什么难得的爱情谈到柏拉图式的爱情不得不提的就是他关于灵魂的看法,在他那里。
  • 司马懿为什么历三代才夺权(司马懿活到73岁司马孚活到93)
  • 2024-11-22司马懿活到73岁司马孚活到93司马防高寿七十岁,司马懿享年七十三岁,弟弟司马孚更是九十三岁,这些长寿在现代是常见的,但在各项医疗条件落后的古代,这才是真正的高寿,要是按汉末战乱人口平均寿命仅二十多岁比较,那么司马懿的确是当时高寿的。
  • 淡奶油可以直接吃吗(能不能直接吃淡奶油)
  • 2024-11-22能不能直接吃淡奶油淡奶油可以直接吃淡奶油是从牛奶中提取出来的,可以直接食用,不过淡奶油最好是吃熟的,不要轻易吃生的,生的淡奶油口感比较差,而且不利于营养的吸收奶油一般都指可以打发裱花用的动物奶油,脂肪含量一般在30%~。
  • 3拼音节练习(拼音专项练习三拼音节)
  • 2024-11-22拼音专项练习三拼音节怎么才能区分两拼音节和三拼音节?我先来看看它分类:两拼音节:声母韵母(单韵母/复韵母/前鼻韵母/后鼻韵母)三拼音节:声母介母(i/u/ü)韵母(单韵母/复韵母/前鼻韵母/后鼻韵母)介母是i的:iɑ、i。
  • 手表不走的原因有哪些(手表不走的原因有什么)
  • 2024-11-22手表不走的原因有什么手表依靠发条上弦提供动力,通过齿轮传动来计时机械表分为手动上弦和自动上弦由于结构较为复杂,表型较为厚重因为走时原理的特点,要受地心引力、机械摩擦、温度变化、使用情况等原因的影响主要来自佩戴者的手腕活动。
  • 哪些被你惊艳到的花语(花语第3期花语之意)
  • 2024-11-22花语第3期花语之意花语无声胜有声其中的含义和情感表达甚于言语一白色郁金香白色郁金香的颜色如雪一般洁白,给人一种纯净的感觉,所以它的花语是“纯情”、“纯洁”此外,因为白色也是一种比较忧伤的颜色,所以它也有一些带有忧郁色彩。
  • 黄渤的高情商化解方法(明星的高情商到底有多重要)
  • 2024-11-22明星的高情商到底有多重要大家看了最新一期的桃花坞了吗?这个综艺可真有意思,让15个完全不相干的人来到一个一个陌生的地方,向观众展示大型社交尴尬现场每个嘉宾个性鲜明,上热搜最多的莫属孟子义第二期刚播完,#孟子义情商#就上热搜。