看到这个标题,有的同学肯定认为,这篇博客就是一个“标题党”,MID函数可以说是VBA入门级别的函数,但凡学习过几天的小白用户都会用,那么各位客官不要着急,我说说你听听,如果大家都知道这个用法,只能说明我孤陋寡闻了,如果大家觉得这是个新奇用法,那就烦请大家点个赞吧!

实例需求:将一个字符串(长度不定)进行转换,规则为倒数第3个字符和倒数第1个字符互换位置,例如:字符串为12345,转换结果为12543

这个需求并不复杂,只有会使用基本的字符串处理函数,就可以实现,参考代码如下。

Sub demo1()txt = "12345"new_txt = Left(txt, Len(txt) - 3) & _Right(txt, 1) & _Mid(txt, Len(txt) - 1, 1) & _Mid(txt, Len(txt) - 2, 1)Debug.Print ("原字符串:" & txt & vbNewLine & "新字符串:" & new_txt)
End Sub

【代码解析】
第3行代码使用Left函数提取除了尾部3个字符之外的字符串。
第4行代码使用Right函数提取最后一个字符。
第5行代码使用Mid函数提取倒数第2个字符。
第6行代码使用Mid函数提取倒数第3个字符。
第7行代码输出字符串。

这个常规思路实现代码无需多讲,接下来看看神奇的代码,由ExcelHome的ggmmlol提供。

实例代码。

Sub demo2()txt = "12345"Debug.Print ("原字符串:" & txt)Mid(txt, Len(txt) - 2, 3) = VBA.StrReverse(Right(txt, 3))Debug.Print ("新字符串:" & txt)
End Sub

【代码解析】
核心代码在于第4行,玩了10+年VBA,第一次看到Mid函数可以用于等号左侧,太神奇!
第4行的整体实现思路也很赞,调用StrReverse函数,一次性实现了字符换位。

既然Mid函数可以用于等号左侧,那么它的兄弟LeftRight函数是否可以呢,试了一下都不行。

再来测试一下这个用法是否可以实现任意长度字符替换。

Sub demo3()txt = "12345"Debug.Print ("原字符串:" & txt)Mid(txt, Len(txt) - 3, 4) = VBA.StrReverse(Right(txt, 3))Debug.Print ("新字符串:" & txt)
End Sub

输出结果如下:

原字符串:12345
新字符串:15435

并没有实现尾部4个字符替换为3个字符,而只是将倒数第4个至倒数第2个字符进行了替换,这样看来似乎是按照类似指针的方式,定位到了指定的保存位置,然后更新了存储的内容。

感兴趣的同学可以参阅 微软官方文档


如果大家知道更多这种神奇的用法,请大家留言。

拍案叫绝的VBA MID函数用法相关推荐

  1. MySQL MID()函数用法

    在前面的 hack 语句中: 1 UPDATE table SET views = '1' WHERE id = -2441 OR (ORD(MID((SELECTIFNULL(CAST(FirstN ...

  2. MySQL 笔记(五)replace ,mid函数用法

    1.replace(st1,str2,str3) 在字串str1中,str2出现,就会用str3代替,即用str3来替换str1中的str2,.     world(id,name,capital) ...

  3. c语言find和mid函数的使用方法,excel中mid函数和find函数用法

    mid 函数用法 MID既不从第一位开始截取,也不从最后一位开始截取,而是由用户自行指定开始的位置和字符的长度.因此,若用户指定从第一位开始,便和Left函数一样. 使用语法 MID(text,sta ...

  4. 案例:Excel 截取单元格中的json格式的数据 (Find 函数 和 Mid函数)

    需求:提取下面Excel中B 单元格中的省份 思路:截取字符串,但是省份的长度没有规律,比如河南省,比如黑龙江省,还有不是以省结尾的,比如直辖市:上海市,重庆市之类的. 寻找其他规律:我们发现单元格里 ...

  5. mid函数怎么用mysql_MySQL MID()函数的用法详解(代码示例)-mysql教程-学派吧

    在MySQL中,MID()函数返回从指定位置开始的子字符串. MID()和SUBSTR()都是SUBSTRING()的同义词. 基本语法是这样的: MID(str,pos,len) 这里,str是字符 ...

  6. mysql中函数mid_MySQL MID()函数的用法详解(代码示例)

    在MySQL中,MID()函数返回从指定位置开始的子字符串. MID()和SUBSTR()都是SUBSTRING()的同义词. 基本语法是这样的:MID(str,pos,len) 这里,str是字符串 ...

  7. findmid函数c语言,excel find函数用法_excel中mid函数的用法教程详解

    [www.gpsvo.com--管理学] Excel中经常需要使用到mid函数进行截取数据,mid函数具体该如何使用操作呢?下面是由小编分享的excel中mid函数的用法,以供大家阅读和学习. exc ...

  8. 计算机二级excel中mid的用法,mid函数在excel中的使用方法

    导语:你还在为Excel中mid函数的使用方法而苦恼吗,今天小编教你Excel中mid函数的使用方法,让你告别Excel中mid函数的使用方法的烦恼. 工具/原料 Excelmid函数 1.mid函数 ...

  9. asp 中 mid函数的用法

    从字符串中返回指定数目的字符. Mid(string, start, length) 参数 string 字符串表达式,从中返回字符.如果 string 包含 Null,则返回 Null. Start ...

最新文章

  1. MySQL 高频 100 问
  2. python怎么用matplotlib生成图表_Python让图表奔跑起来,Matplotlib的神奇用处
  3. python【蓝桥杯vip练习题库】ADV-183分苹果(差分数组 离线区间)
  4. ansys scade suite 2020中文版
  5. jupiter 依赖_Jupiter 介绍
  6. sealed、new、virtual、abstract与override 趣解
  7. java 数据截断_java – 数据截断:第1行的列’标志’的数据太长
  8. python怎么编辑文件_如何使用python中的方法对文件进行修改文件名
  9. Step1帐户登录系统(0.整体思路)
  10. 菜鸟的学习之路(8) — 数组(Array)
  11. Python3入门机器学习经典算法与应用 第3章 Jupyter Notebook魔法命令%run,%timeit
  12. 银河麒麟系统如何取得终端的root权限和查看所有服务状态
  13. 从网站抓取数据的3种最佳方法
  14. 小度wifi驱动的交叉编译及安装
  15. learn words by steps 8 英语单词
  16. 单片机|CC2530实验入门
  17. HTML教程(看完这篇就够了)
  18. freeswitch与eyebeam
  19. Navicat怎样导入Excel表格和txt文本的数据
  20. PHP微信公众号文章爬虫

热门文章

  1. 模块一:shell 脚本基础
  2. Android TextView局部下划线及点击弹出popu
  3. 【附源码】Java计算机毕业设计健身房管理系统(程序+LW+部署)
  4. python爬取最新说章节_练习_Python3 爬取笔趣阁最新小说章节
  5. 主叫号码自动提取及客户历史资料弹出
  6. 中断控制器8259——工作方式、命令字
  7. 计算机访问要输入用户及密码是多少,局域网访问需要用户名和密码怎么办
  8. MATLAB实现简单目标跟踪
  9. iOS App 稳定性指标及监测(转载)
  10. 火山安卓组件之花式按钮