版本:Excel 2021。

打开VBA界面:快捷键Alt+F11。(或视图-宏)。

录制宏,再看看宏的代码,就可以基本了解常规的Excel操作在VBA里是什么德行。

比方说,我需要对一个选区进行修改,就先录制宏,然后对选区随便改改,再停止录制,就知道选区对应的关键字是Selection了。

知道了常规的Excel操作之后,重要的就是写逻辑。

我写了一个简单的VBA逻辑:

Sub AddSpace()
' 将选中的单元格的第二个大写字符的前面加一个空格
' 例如"ZhangSanSan"改成"Zhang SanSan" i = 1
For Each test In Selection '遍历选中的
ops = 2
If (Len(test) > 2) Then '只修改长度大于2的字符串
For ii = 2 To Len(test) '遍历单元格的字符串(从第二个开始)
a = Mid(test, ii, 1) '字符串取值
If (a >= "A" And a <= "Z") Then '判断是否是大写
ops = ii '确定位置
Exit For '跳出for循环
End If
Next ii
If Mid(test, ops - 1, 1) <> " " Then '如果已经有空格,则不加
test2 = Mid(test, 1, ops - 1) & " " & Mid(test, ops)
Selection(i) = test2
End If
End If
i = i + 1
If (i >= 10000) Then '不处理10000以上的数据量
Exit For
End If
Next End Sub

能看明白上面那个程序,就能够清晰地认识到以下几个编程常用的问题:

  1. 选区遍历;
  2. 单元格字符串的字符串遍历、修改、拼接;
  3. 条件判断;
  4. 退出循环(VBA没有continue);

效果:


附加个Python版。

我以为用python写20分钟已经很久了,没想到VBA这程序花了我一个小时。虽然说实话它在这个程序中的运行速度,比python强远了,因为python我做了“打开excel、逐行填写、保存excel”等冗余的操作。

python版:

# author: shandianchengzi
# description: 用大写字符分割字符串
# status: complete from win32com import client fp='E:/workspace/py/工作1.xlsx' def myFunc():
ws = wb.Worksheets[0]
for i in range(1,1614):
oldStr=list(ws.Cells(i, 1).Value)
ops=0
for j in range(1,len(oldStr)):
if (oldStr[j].isupper()):
ops=j
break
oldStr.insert(ops, ' ')
ws.Cells(i, 2).Value = ''.join(oldStr) excel = client.DispatchEx('Excel.Application')
excel.Visible = True #是否可视化
wb = excel.Workbooks.Open(fp)
myFunc()
wb.Save()
wb.Close(True)
excel.Quit()

【记录】Excel 2021|(一)VBA操作Excel入门,在姓和名之间打空格,如“ZhangSanSan“改成“Zhang SanSan“的更多相关文章

  1. 记录python接口自动化测试--把操作excel文件的方法封装起来(第五目)

    前面补充了如何来操作excel文件,这次把如何获取excel文件的sheet对象.行数.单元格数据的方法进行封装,方便后面调用 handle_excel.py# coding:utf-8 import ...

  2. VBA 操作 Excel 生成日期及星期

    直接上代码~~ 1.  在一个 Excel 生成当月或当年指定月份的日期及星期 ' 获取星期的显示 Function disp(i As Integer) Select Case i disp = & ...

  3. Excel VBA 操作 Word(入门篇)

    原文地址 本文的对象是:有一定Excel VBA基础,对Word VBA还没有什么认识,想在Excel中通过VBA操作Word还有困难的人.   一.新建Word引用 需要首先创建一个对 Word A ...

  4. 使用Win32::OLE操作Excel——Excel对象模型

    像VBA操作Excel一样,Win32::OLE模块也是通过对象操作来控制Excel. 如果想自动化操作和控制Excel应用程序,则必须要与Excel对象模型所提供的对象进行交互.理解和熟悉Excel ...

  5. Excel中使用VBA访问Access数据库

    VBA访问Access数据库 1. 通用自动化语言VBA VBA(Visual Basic For Application)是一种通用自动化语言,它可以使Excel中的常用操作自动化,还可以创建自定义 ...

  6. [Asp.net] C# 操作Excel的几种方式 优缺点比较

    在项目中我们常常需要将数据库中的数据导出成Excel文件 有一次工作中我的目的就是读取Excel到内存中,整理成指定格式 整理后再导出到Excel. 因为我要处理的每个Excel表格文件很大.一个表格 ...

  7. VBA在Excel中的应用(三)

    目录  Chart Export Chart Format Chart Lengend  Chart Protect  Chart Title  Chart Chart Export 1. 将Exce ...

  8. 【Python数据分析】Python3操作Excel(二) 一些问题的解决与优化

    继上一篇[Python数据分析]Python3操作Excel-以豆瓣图书Top250为例 对豆瓣图书Top250进行爬取以后,鉴于还有一些问题没有解决,所以进行了进一步的交流讨论,这期间得到了一只尼玛 ...

  9. python 操作Excel文件

    1   安装xlrd.xlwt.xlutils cmd下输入: pip install xlrd        #读取excel pip install xlwt        #写入excel pi ...

  10. Python 读写操作Excel —— 安装第三方库(xlrd、xlwt、xlutils、openpyxl)

    数据处理是 Python 的一大应用场景,而 Excel 则是最流行的数据处理软件.因此用 Python 进行数据相关的工作时,难免要和 Excel 打交道. 如果仅仅是要以表单形式保存数据,可以借助 ...

随机推荐

  1. RabbitMQ(十)——消息优先级

    RabbitMQ系列 RabbitMQ(一)--简介 RabbitMQ(二)--模式类型 RabbitMQ(三)--简单模式 RabbitMQ(四)--工作队列模式 RabbitMQ(五)--发布订阅 ...

  2. 「原创」Xiaomi-R3 免刷Openwrt实现路由器锐捷认证 (含网络守护脚本)

    引言 没有路由器 宿舍人均用网络月末苦不堪言,搭建一台路由器燃眉之急!! 设备选择 初代小米路由器产品均为OpenWrt深度定制后的产物,免去设备刷入固件时机器变砖的风险,本片记录的使用型号为 MIR ...

  3. Hive - 多种表类型的CURD测试

    关于torc.textfile.orc.es.hyperdrive表的CURD测试 TORC(支持事务的orc表)测试 TORC(分区表)测试 TEXTFILE 表测试 ORC 表测试 ES(Elas ...

  4. 常见的各类LLM基座模型(GPT、DeepSeek、Qwen等)模型解析以及对比

    From: https://www.big-yellow-j.top/posts/2025/02/15/LLM.html 各类LLM模型技术汇总 只去对比整体框架,对所采用的激活函数,归一化处理,位置 ...

  5. 一个生成随机颜色的js函数

    function getRandomColor(){ let rgb = []; for(let i=0;i<3;++i){ let color = Math.floor(Math.random ...

  6. 【C#语法糖 Lambda】2 - 表达式树与LINQ

    一.声明 曾经遇到一个这样的场景: GetEntities(a => a.OrderKindCodeId == 16 && a.IsDeleted, this.DefaultCo ...

  7. 【Abaqus】Composite Layup建模

    abaqus 的3个复合材料建模途径: 传统的material->section->orientation->step->job的建模方式 Composite Layup建模方 ...

  8. AWVS安装使用

    AWVS安装使用 1.双击exe文件,然后点击下一步. 2.选择我接受,然后下一步. 3.选择路径(我选择的默认路径)然后下一步. 4.还是下一步. 5.设置邮箱,用户名密码,用户名12345678@ ...

  9. 【BUG】鸿蒙模拟器虚拟化问题的解决方案

    创建记事本文档.txt,键入以下代码: pushd "%~dp0" dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum > ...

  10. 基于pandas的数据清洗 -- 重复值的清洗

    博客地址:https://www.cnblogs.com/zylyehuo/ 开发环境 anaconda 集成环境:集成好了数据分析和机器学习中所需要的全部环境 安装目录不可以有中文和特殊符号 jup ...