vba结束本次循环进行下次_VBA掌握循环结构,包你效率提高500倍

463a64602e5a079758dfc05246269926.png

这是系列免费教程《Excel VBA:办公自动化》,还是老规矩,看看我们走到哪里了。

1.认识VBA:什么是VBA?

2.这些掌握了,你才敢说自己懂VBA

3.VBA变量5年踩坑吐血精华总结

4.VBA中重要的强制申明,谁看谁明白

a7d3752392aab5ce09a3b74350df9e74.png

我们先看上次分享的案例题目。

在「单元格B2」输入不同的行号,点击「显示答案」按钮,计算「F列」和「H列」对应行号的乘积,并将每个乘积结果加上公共值「单元格B4」的50,将最终结果显示在相应的单元格。

fe0684a720a2f554725a82f54ca8b664.png

我们首先回顾一下上述的操作,我们先输入不同题号,然后点击宏按钮,整个过程需要2步。

如果题目只有10道,好像看起来没什么,但是如果题目有100道、1,000道或是更多的题目呢?

假设题目1,000道,输入题号+点击按钮2连操作你仅需要1s(那得多快的手速),全部操作完就是1,000s,也就约为17分钟。

如果这个题目的数字再进一步放大呢?我想时间成本就不可想象了。

其实,上述案例是我之前部门同事工作的简化版,他经常要面对机械重复、枯燥乏味的Excel表格操作。

当然了,如今的他早已摆脱当年的那种苦海~

如果你也想早日摆脱机械重复、枯燥乏味的Excel表格操作苦海,下面2个知识点你一定要掌握。

1.for循环

案例:不输入题号,仅点击1次「显示答案」按钮,所有题目答案自动计算后显示在「J列」

73b49fd3c723eb0fb00e98254bcd48c7.png

我们来分析案例(仅以10道题目来分析)

583a42058826ef5b8ec59c1969a0a60d.png

我们观察发现:行号是变化的,而且是「正向递增加1」的规律。

在《变量》分享那篇文章,我们将这些变化的行号数字更改为「变量」,用x代替,程序被精简为这样:

0d7721ee617557ef63c585370db050c8.png

那时,我们通过将「单元格B2」的值赋值给「变量x」,然后手动变更「单元格B2」的值,从而变更「变量x」的值,那么能不能让「变量x」完全自动变化呢?

我们对之前的代码小小改造一下,仅加2句「For循环结构」代码即可轻松实现一键自动计算上述案例答案:

6273fbd14afb199f0053b52118ef442c.png

我们把上述代码单独拿出来,分析一下

d8423d92485d04b14fb5a4ff6813d68d.png

For循环主要分为3个部分,分别为:

(1)循环开始

标准的书写格式为「For xxx = xxx To xxx Step xxx」,表示的意思是「变量xxx」的值从xxx变化为xxx,每次增加xxx

a4c4f7e76c0c4e6ca382deb3f78b840d.png

(2)循环内容

循环内容根据工作需求书写相关执行代码就好,一般都是循环的核心代码,比如这里的循环内容就是「J列某行单元格」=「F列某行单元格」*「H列某行单元格」+ 50

1e08f3266710a93d57d7f807ad381e79.png

(3)循环结束

标准的书写格式为「Next xxx」,表示的意思是「下一个xxx的值」

b4ac77559e31da5bf9baf9ea160a47f0.png

[备注]

a.「Step」可以取正整数和负整数,也可以省略不写;当「Step」省略不写时,值默认为1。

b.「Next xxx」中的「变量 xxx」可以省略不写,但建议完整书写,不省略。

我们来模拟一下上述「For循环结构」的程序运行过程:

(1)程序读取「循环开始」语句「For x = 1 To 10 Step 1」

315fc7cfa3db51733f1b1106839fdf56.png

由于我们使用了「For循环开始」,并且严格规定了「变量X」的值从1变为10,每次仅增加1,即:x可以取1 2 3 4 ...10。而本次「x = 1」

(2)读取第2句「循环内容」代码「Cells(x, 10) = Cells(x, 6) * Cells(x, 8) + h」

9539ec5529d94e35bc9edc446165cba5.png

由于第1句代码确定了「x = 1」,而「Cells(4, 2) = 50」以及「h = Cells(4, 2)」,那么「h = 50」。因此,上述代码可以翻译为:「单元格J1」= 「单元格H1」* 「单元格F1」+50。最后,程序到单元格获取对应的值即可。

(3)读取第3句「循环结束」代码「Next x」

cf14d65e6b0339e8ee9fdf8e20687fb1.png

此时,「变量 x = 2」

(4)程序回到第1句读取「循环开始」语句「For x = 1 To 10 Step 1」

380b3d16d95f52e04326a8a440389637.png

我们可以看到此时程序自动返回「循环开始」的地方,由于此时「变量 x = 2」仍然符合「X 从 1 变为 10 每次增加1」这个区间,因此程序接着运行,一直等到「变量 x = 11」的时候,程序会跳出循环,执行下一个语句。

(5)我们看下最终的程序的执行结果

73b66fcbe0b869ca4104307669758582.png

看到这里我们大家也许就明白了,所谓的「For循环结构」就是:

提前设置一定的条件或规则,然后程序自动按照设定的条件或规则自动运行,等到不符合设定的条件或规则时,程序跳出循环结构,执行下一个句子。

那么,我们就可利用「For循环结构」这种符合条件自动运行的特性,根据工作场景书写相关代码即可。

2.代码排版

按照马斯洛的需求层次理论,我们在达到一定的需求层次之后,会追求更高的需求层次。

那么,这句话应用到VBA代码领域就是:在我们掌握了一定的代码基础之后,我们就希望掌握更强的VBA技能。(这些技能你只要跟着我们的VBA分享课一步一个脚印练习,一定能够惊叹自己的超能力)

但真正的VBA高手不仅取决于VBA代码实力,还取决于自己写的代码别人能不能看懂,也包括自己日后能不能看懂。(别问我为什么,因为我经历过翻译自己代码的痛苦)

3eb6736efdfb29f580d0244ccdf70de2.png

很明显,更喜欢右边的排版,因为它排版干净、代码从属关系清晰,更易阅读。

所以说,我们不仅要多金(技能强),还要帅气(排版好)

那么,如何实现上述帅气的排版呢?很简单,戳一下就可以

(1)按「Tab」代码缩进

d2689aea1ea12674e2bf6b38814ca093.png

(2)点选VBE编辑器的缩进按钮

480ff75e94b6dbcc4d00f9e2cc1ede6b.png

正所谓:“帅气”VBA路,从Tab起步

3.总结

(1)For循环结构

提前设置一定的条件或规则,然后程序自动按照设定的条件或规则自动运行,等到不符合设定的条件或规则时,程序跳出循环结构,执行下一个句子。

1bb854701daa8e2c40ed9627fd279de2.png

(2)VBA代码排版

“帅气”VBA路,从Tab起步

3ec42b8b8a3cd54dac53eeb8dc98ed38.png

推荐:人工智能时代的必学技能

92d1ecd4cf89bec185a3da065fbf3f97.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/571513.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CefSharp 支持MP4

效果图: 下载链接:https://share.weiyun.com/d1e249ef5c56b4d909b2124dc2dd8902 创建Wpf项目引用 如下: 第一步:创建项目引用CefSharp 第二步:将DLL拷贝到运行项目的Debug下 第三步:项目平台设置32位 第四…

python定义字典列表_Python基础语法(四)—列表、元组、字典、集合、字符串

列表基本概念列表是有序的元素集合,所有元素放在一对中括号中,用逗号隔开,没有长度限制;列表索引值以0为开始值,-1为从未尾的开始位置。列表可以使用操作符进行拼接,使用*表示重复。当列表元素增加或删除时…

ReentrantLock 分析

带着疑问去分析 ReentrantLock是如何实现锁管理的。ReentrantLock是如何实现重入的。ReentrantLock是如何实现公平锁与非公平锁。ReentantLock的公平锁为什么一般情况下性能都比公平锁查。ReentrantLock数据结构 ReentrantLock的底层是借助于AbstractQueuedSynchronizer实现的&…

v4l2 框架下如何设置分辨率_Linux下如何进行FTP设置

目录: 一、Redhat/CentOS安装vsftp软件二、Ubuntu/Debian安装vsftp软件一、Redhat/CentOS安装vsftp软件1.更新yum源yum update -y2.安装vsftpyum install vsftpd -y3.修改配置文件vi /etc/vsftpd/vsftpd.conf # 原有初始配置 local_umask022 dirmessage_enableYES x…

java ztree json_java递归实现ztree树结构数据展示

//获得zTree结构的数据(测试AuthInfo)RequestMapping("/getAuthInfoTree.action")public void getAuthInfoTree(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {System.out.println("getAuthInfoTree")…

2017-2018-1 20155213 《信息安全系统设计基础》第十一周学习总结

2017-2018-1 20155213 《信息安全系统设计基础》第十一周学习总结 【学习内容:第九章——虚拟存储器】 一、课本内容梳理 1.虚拟存储器 作用: 将主存看作是一个存储在磁盘上的地址空间的高速缓存,在主存中只保护活动的区域,并根据需要在磁盘和…

vscode弹出cmd_先看看 VS Code Extension 知识点,再写个 VS Code 扩展玩玩

TL;DR文章篇幅有点长 ,可以先收藏再看 。要是想直接看看怎么写一个扩展,直接去第二部分 ,或者直接去github看源码 。第一部分 --- Extension 知识点一、扩展的启动如何保证性能 --- 扩展激活(Extension Activation) 我…

Part5 数据的共享与保护 5.4类的友元5.5共享数据的保护

友元是C提供的一种破坏数据封装和数据隐藏的机制。通过将一个模块声明为另一个模块的友元,一个模块能够引用到另一个模块中本是被隐藏的信息。可以使用友元函数和友元类。为了确保数据的完整性,及数据封装与隐藏的原则,建议尽量不使用或少使用…

webp转换gif_用 WebP 创建尺寸更小、细节更丰富的图片,以此来提高网站的速度...

WebP 文件格式是一种基于 RIFF(资源互换文件格式)的文档格式。WebP 是 2010 年 Google 开发的一种图片格式,它为网页上的图片提供了卓越的无损和有损压缩。网站开发者们可以使用 WebP 来创建尺寸更小、细节更丰富的图片,以此来提高网站的速度。更快的加载…

myeclipse java注释模板_Eclipse/MyEclipse Java注释模板设置详解 ---转载自百度空间

设置注释模板的入口: Window->Preference->Java->Code Style->Code Template 然后展开Comments节点就是所有需设置注释的元素啦。现就每一个元素逐一介绍:文件(Files)注释标签:/*** Title: ${file_name}* Package ${package_name…

php之快速入门学习-9(switch)

PHP Switch 语句 switch 语句用于根据多个不同条件执行不同动作。 PHP Switch 语句 如果您希望有选择地执行若干代码块之一&#xff0c;请使用 switch 语句。 <?php switch (n) { case label1:如果 nlabel1&#xff0c;此处代码将执行;break; case label2:如果 nlabel2&…

python 如何判断excel单元格为空_如何用python处理excel(二)

读取excelimport xlrdworkbookxlrd.open_workbook(rC:\Users\Desktop\hebing\学生登记表.xls)sheetworkbook.sheet_by_index(0)#根据序列号来打开某一个sheetrowsheet.nrows#将excel的行数赋值给变量colsheet.ncols#将excel的列数赋值给变量print(sheet.cell_value(1,0))#打印出…

mysql 事务 数量_MySQL 数据查询语言(DQL) 事务控制语言(TCL)详解

一、 数据查询语言(DQL)(重中之重)完整语法格式&#xff1a;select 表达式1|字段,....[from 表名 where 条件][group by 列名][having 条件][order by 列名 [asc|desc]][limit 位置,数量]<1> 普通查询select 查询表达式; // 最简单的sql语句&#xff0c;是一个函数select…

web前端到底是什么?有前途吗

web前端到底是什么&#xff1f; 某货&#xff1a; “前几年前端开发人员鱼目混杂&#xff0c;技术参差不齐&#xff0c;相对学习起来不规范&#xff0c;导致> 前端开发人员聚集&#xff0c;所以现在前端工种和工资还是没得到普遍重视&#xff0c;但近2年来&#xff0c;> …

此加载项为此计算机的所有用户安装_MDI Jade 6.5软件安装教程

软件下载▼关注微信公众号&#xff1a;贵州永航科技回复Jade即可获得软件安装包下载地址以及详细安装教程更多软件安装教程可点击菜单栏获取软件介绍MDI Jade是一款专门用于XRD分析的软件&#xff0c;XRD分析就是X射线衍射分析&#xff0c;MDI Jade通过对材料进行X射线衍射&…

java 线程定时器_Java线程之Timer定时器

定时/计划功能主要使用的就是Timer对象&#xff0c;它在内部还是使用多线程的方式进行处理&#xff0c;所以它和线程技术还是有非常大的关联。Timer类主要作用就是设置计划任务&#xff0c;但封装任务的类却是TimerTask类。TimerTask类是一个抽象类。执行任务的时间晚于当前时间…

博客已经迁移到 http://imbotao.top 也会同步到这儿

完全是看到别人搭建的 hexo github Pages 博客界面很好看&#xff0c;很简洁&#xff0c;自己也喜欢折腾&#xff0c;就鼓捣了一个。 也在阿里云买了自己的域名&#xff0c;个人感觉在博客的样式和功能上花费了太多的时间&#xff0c;不过现在终于搞的差不多了&#xff0c;以后…

vscode 写vue 没有js提示_如何用VSCode实现一个vue.js项目?

1,新建项目打开Visual studio code打开一个你想要创建项目的文件夹打开集成终端&#xff1a;查看 –> 集成终端 或者直接按 ctrl\ 如果没有安装vue-cli&#xff0c;在终端输入&#xff1a;npm install \-g vue-cli全局安装vue-cli然后新建项目vue init webpack projectNamep…

python有没有类似unity3d_像web一样使用python

使用传统的web开发技术,也就是htmljs,然后搭配一个后端语言,已经成为当今web开发的固定模式了,为此也形成了众多的toolkit,譬如ror,django,各种js图形库更是玲琅满目,从非常大程度上也加速了开发过程.但传统web应用也非常自然地有一些诟病,有些特殊效果,c端能够轻而易举地完毕,…

邓白氏编码查询_外贸人常用查询工具汇总

外贸工具类网站FOB价格计算器http://bbs.fobshanghai.com/fobprice.htmCIF价格计算器http://www.easiertrade.com/public/cif.html?_1487894720000海关原产地证真伪查询https://dwz.cn/f3O8YGK6出口退税查询https://dwz.cn/kGWsBclu国家已正式于2018年11月1日起调整产品的出口…