【记录】Excel 2021|(一)VBA操作Excel入门,在姓和名之间打空格,如“ZhangSanSan“改成“Zhang SanSan“
版本: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
能看明白上面那个程序,就能够清晰地认识到以下几个编程常用的问题:
- 选区遍历;
- 单元格字符串的字符串遍历、修改、拼接;
- 条件判断;
- 退出循环(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“的更多相关文章
- 记录python接口自动化测试--把操作excel文件的方法封装起来(第五目)
前面补充了如何来操作excel文件,这次把如何获取excel文件的sheet对象.行数.单元格数据的方法进行封装,方便后面调用 handle_excel.py# coding:utf-8 import ...
- VBA 操作 Excel 生成日期及星期
直接上代码~~ 1. 在一个 Excel 生成当月或当年指定月份的日期及星期 ' 获取星期的显示 Function disp(i As Integer) Select Case i disp = & ...
- Excel VBA 操作 Word(入门篇)
原文地址 本文的对象是:有一定Excel VBA基础,对Word VBA还没有什么认识,想在Excel中通过VBA操作Word还有困难的人. 一.新建Word引用 需要首先创建一个对 Word A ...
- 使用Win32::OLE操作Excel——Excel对象模型
像VBA操作Excel一样,Win32::OLE模块也是通过对象操作来控制Excel. 如果想自动化操作和控制Excel应用程序,则必须要与Excel对象模型所提供的对象进行交互.理解和熟悉Excel ...
- Excel中使用VBA访问Access数据库
VBA访问Access数据库 1. 通用自动化语言VBA VBA(Visual Basic For Application)是一种通用自动化语言,它可以使Excel中的常用操作自动化,还可以创建自定义 ...
- [Asp.net] C# 操作Excel的几种方式 优缺点比较
在项目中我们常常需要将数据库中的数据导出成Excel文件 有一次工作中我的目的就是读取Excel到内存中,整理成指定格式 整理后再导出到Excel. 因为我要处理的每个Excel表格文件很大.一个表格 ...
- VBA在Excel中的应用(三)
目录 Chart Export Chart Format Chart Lengend Chart Protect Chart Title Chart Chart Export 1. 将Exce ...
- 【Python数据分析】Python3操作Excel(二) 一些问题的解决与优化
继上一篇[Python数据分析]Python3操作Excel-以豆瓣图书Top250为例 对豆瓣图书Top250进行爬取以后,鉴于还有一些问题没有解决,所以进行了进一步的交流讨论,这期间得到了一只尼玛 ...
- python 操作Excel文件
1 安装xlrd.xlwt.xlutils cmd下输入: pip install xlrd #读取excel pip install xlwt #写入excel pi ...
- Python 读写操作Excel —— 安装第三方库(xlrd、xlwt、xlutils、openpyxl)
数据处理是 Python 的一大应用场景,而 Excel 则是最流行的数据处理软件.因此用 Python 进行数据相关的工作时,难免要和 Excel 打交道. 如果仅仅是要以表单形式保存数据,可以借助 ...
随机推荐
- Codeforces 319B Psychos in a Line 题解 [ 绿 ] [ 单调栈 ] [ 动态规划 ] [ adhoc ]
Psychos in a Line:很好的单调栈优化 dp 题! 观察 我们先观察,一个精神病人会一直杀到什么时候.显然,会杀到右边第一个比他大的精神病人那里,然后他就杀不动了. 因此我们可以从右往左 ...
- WPF DockLayoutManager布局后的布局重置
初始化布局 Logging.InfoBiz("初始化布局信息"); dockLayoutManager = new DockLayoutManager(); RestoreLayo ...
- 1 前端知识学习-初始Web和Web标准
0️⃣ 初始Web和Web标准 Web Web(World Wide Web) 即全球广域网.也成为万维网.我们常说的Web端就是网页端. 网页 网页是构成网站的基本元素.网页主要由文字.图像 ...
- TTRSS 迁移实战
背景 几年前在云服务器上搭建了一套 TTRss + RssHub 集群, 用于阅读文章. 具体可以参见这篇文章: 使用 K8S 部署 RSS 全套自托管解决方案 - RssHub + Tiny Tin ...
- MybatisPlus - [08] RestFul
编号 接口 请求方式 请求路径 请求参数 返回值 1 新增用户 POST /users 用户表单实体 无 2 删除用户 DELETE /users/{id} 用户id 无 3 根据id查询用户 GET ...
- vue - [01] 概述
题记部分 001 || 什么是Vue Vue(发音为 /vju:/,类似view)是一款用于构建用户界面的渐进式框架(JavaScript).它基于标准HTML.CSS和JavaScript构建, ...
- mybatis - [08] mybatis-config.xml 详解
mybatis-config.xml中的标签需要按照一定顺序配置,否则会有以下提示. configuration(配置) properties(属性) settings(设置) typeAliases ...
- MySQL - [03] 数据库引擎
所有的数据库文件都存在data目录下,本质还是文件的存储. -- 建表时指定编码格式为中文utf-8 CREATE TABLE IF NOT EXISTS `student` ( `id` INT(4 ...
- 使用selenium下载文件--设置下载文件自动保存文件夹
selenium自动下载文件到指定目录 本文参考:https://www.cnblogs.com/huxiaofeng1029/p/17383726.html 有时候,我们需要在网页中点击某些按钮,将 ...
- 【Pre】预习测试-Logisim/Verilog/MIPS
好家伙,开门挂 T2 字符自动机cscore 1.审题·惯性思维:直接输出了当前连续数,题目要求是最大连续数 -> [重新读题解决] 2.非阻塞赋值运用:若在always块内通过if(out1 ...