字符串中删除指定长度及根据固定字符删除
liebian365 2025-03-19 14:03 2 浏览 0 评论
【分享成果,随喜正能量】这里,有你,有我,有他们,我们能从中看到无数身边人的影子,他们是时代的既得利益者,也有受时代改变的先行者,更有发展阵痛下的承受者,他们都是时代进步下的改革者,历史的见证者。。
《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实践经验,全部浓缩在下面的各个教程中:
【分享成果,随喜正能量】努力总是与幸运成正比,今天的努力,从来不会被辜负,希望明天的你,只有惊喜,没有失望,未来可期。。
相关推荐
- python如何对字符串进行操作(python如何对字符串进行操作输出)
-
1.字符串的创建可通过直接赋值、构造或转义字符来创建字符串。#普通字符串s="Hello,World!"#多行字符串(使用三引号)multi_line_str='''Thisi...
- Excel表格中11个常用的字符串函数
-
今天和大家聊聊常用的字符串函数,在不同的条件下,如何选择字符串函数很关键。下面我为大家列举了11个关于字符串的函数公式。一、EXACT(两个字符串进行结果比较)比较两个字符串是否完全相同(这里是要区分...
- 详细介绍一下Python中如何对字符串进行操作?
-
在Python中,字符串做为一种常见的数据处理类型,几乎在每个应用程序中都会被用到。而作为Python中使用最广泛的数据类型Python也是提供了很多强大的方法来支持对于字符串的处理操作。下面我们就来...
- Java中你知道几种从字符串中找指定的字符的数量
-
遇到这样的问题,常规的思路估计就是遍历String,然后逐个对比。下面先看循环遍历循环遍历privatestaticintgetNum(StringoriginStr,Stringtarg...
- C语言strcspn函数详解:字符串的“扫雷探测器”
-
strcspn是C语言标准库中的一个函数,定义在头文件中。它用于计算从字符串的开始到首次出现任何属于指定字符集合的字符之间的字符数量。换句话说,strcspn计算的是主字符串中不包含指定字符集...
- 如何使用 Python 的 f-string 进行字符串格式化
-
Python中的字符串格式化曾经有点麻烦。必须在...
- java判断字符串中是否包含某个字符
-
1使用String类的contains()方法contains()方法用于判断字符串中是否包含指定的字符或字符串。语法如下:publicbooleancontains(CharSequence...
- Python基础:f-string不同数据类型的格式化选项,终极指南!
-
上一篇文章我们介绍了4种字符串格式化方法,其中最现代、最直观的方式是f-string,从Python3.6开始引入,而且时不时就增加一些超级优雅的小改进。今天,钢铁老豆想要继续给大家展开介绍不同数据...
- Excel查找指定字符串,返回相应的结果
-
通过下面的函数,可以实现查找指定字符串,若找到返回“有”,若找不到返回“无”。=IF(ISNUMBER(SEARCH("失业",G3)),"有","无")...
- 一个list中,有b.a.b.c.b.b.写个方法去掉所有b
-
importjava.util.ArrayList;importjava.util.List;publicclassRemoveBFromStringList{/**...
- 掌握Python f-string(掌握催眠能力之后的日常生活)
-
f-string,通常称为格式化字符串文本,是Python3.6中添加的一项强大功能,它提供了一种将表达式包含在字符串文本中的清晰实用的方法。,...
- 深入了解字符串:定义、转义字符和字符串下标
-
字符串是编程中常见的数据类型之一,用于表示文本信息。在绝大多数编程语言中,字符串都是由一系列字符组成的序列,可以包含字母、数字、符号以及空格等。字符串的定义:...
- 100个Java工具类之70:字符串处理工具类StringUtils
-
StringUtils是常用的工具类,提供大量处理字符串的静态方法。StringUtils主要特点...
- Shell中针对字符串的切片,截取,替换,删除,大小写操作
-
切片返回字符串变量var的长度...
- Sqlite - 常规函数 - RTRIM(sqlite命令行工具)
-
在SQLite中,RTRIM函数是一个用于处理字符串的函数,其主要作用是移除字符串右侧(尾部)的指定字符。如果不指定要移除的字符,默认会移除字符串右侧的空格字符。以下是对RTRIM函数的详细...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- wireshark怎么抓包 (75)
- qt sleep (64)
- cs1.6指令代码大全 (55)
- factory-method (60)
- sqlite3_bind_blob (52)
- hibernate update (63)
- c++ base64 (70)
- nc 命令 (52)
- wm_close (51)
- epollin (51)
- sqlca.sqlcode (57)
- lua ipairs (60)
- tv_usec (64)
- 命令行进入文件夹 (53)
- postgresql array (57)
- statfs函数 (57)
- .project文件 (54)
- lua require (56)
- for_each (67)
- c#工厂模式 (57)
- wxsqlite3 (66)
- dmesg -c (58)
- fopen参数 (53)
- tar -zxvf -c (55)
- 速递查询 (52)