批量将Excel所选单元格中的数字变为下标

最近遇到一个需求,实验室的同事说经常要在Excel里输入各种化学式,化学式里有很多数字下标,但是在Excel里改下标需要一个一个改,太麻烦了。于是,我给写了一段VBA,一键批量将Excel所选单元格中的数字变为下标:

Sub 批量改下标()
  Application.ScreenUpdating = True  '禁用屏幕自动刷新,提高运行效率
  Dim selectedRange As Range  '所选单元格Range
  Dim strLength As Integer '单元格内字符串长度
  Dim i As Integer
  
  For Each selectedRange In Selection
    strLength = Len(selectedRange.Text)
    For i = 1 To strLength
      If IsNumeric(Mid(selectedRange.Text, i, 1)) = True Then  '如果是数字,则执行下标变换
        selectedRange.Characters(Start:=i, Length:=1).Font.Subscript = True
      End If
    Next
  Next
    Application.ScreenUpdating = True '恢复屏幕自动刷新
End Sub

最后运行效果:

一键改下标


且行且知
记录一个有追求的外行程序员遇到的坑
83 声望
1 粉丝
0 条评论
推荐阅读
vue中使用xlsx插件前端读取解析excel文件(复制粘贴使用)
工作中一般都是后端去解析excel数据,前端使用上传组件去将excel组件丢给后端,后端使用一些插件去解析excel(比如hutool工具类)

水冗水孚1阅读 428

Excelize 开源基础库 2.7.0 发布, 2023 年首个更新
Excelize 是 Go 语言编写的用于操作 Office Excel 文档基础库,基于 ECMA-376,ISO/IEC 29500 国际标准。可以使用它来读取、写入由 Microsoft Excel™ 2007 及以上版本创建的电子表格文档。支持 XLAM / XLSM...

xuri阅读 632

使用 Excel cdata addin 连接 SAP ABAP 系统时遇到错误消息
错误消息:Detail: NilHSBufInit: already initializedRFC_COMMUNICATION_FAILUREcdata 选项,没有填写 SAProuter 的地方,大概是哪里的问题?笔者在 AG3 做 CRM 开发时,并没有手动维护 saprouter 的地址,如下...

JerryWang_汪子熙阅读 427

封面图
使用RPA机器人快速实现表格数据汇总
不知道大家有没有遇到过重复的数据录入、同样格式的数据汇总、大型表格数据拆分等各种各样不是很难但超级浪费时间的工作,如果你有类似的烦恼,不妨看一下这篇文章。今天作者就给大家介绍一款可以快速实现表格数...

前端小学生xyz阅读 382

初次邂逅 EasyExcel
由于工作原因,有这种需求,就是把数据库中的数据导出成 Excel 表格,同时,也得支持人家用 Excel 表格导入数据到数据库。当前项目也是在用 EasyExcel,所以我不得不学啦!

god23bin阅读 303

封面图
Excel VBA通过企业微信群机器人发送工作表区域截图
在传统行业,用Excel做表比通过Python操作更加普遍,Excel也可以通过VBA实现报表自动化:自动更新数据,用公式/代码生成点评,通过Outlook自动群发邮件,嵌入代码的xlsm可以直接发送给其他人使用,无需打包成exe....

Wilajeni阅读 231

前端,将json数据转化为excel表格文件
1.安装 {代码...} 12.使用 {代码...}

早饭君阅读 223

83 声望
1 粉丝
宣传栏