循环结束后变回去 设置一个值_VBA掌握循环结构,包你效率提高500倍

572b3647fa2daf6645dd1679f3e74a06.png

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

1.认识VBA:什么是VBA?

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

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

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

2a64e780fde7be32fab58668a81cf762.png

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

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

c313efcc4a9bf3adb1f2d206b0c17d57.png

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

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

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

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

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

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

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

1.for循环

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

d9dd60a8e93347b3672f6c8cdd9919eb.png

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

0bc5ff91e05616a676fbf50c051182f7.png

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

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

5a4d339a48198d30df3ff286626a7519.png

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

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

15cea52151a108637b7a96de72820826.png

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

3a24c3f18ac8d7cbf1fd1d19a8253776.png

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

(1)循环开始

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

3018aa86cede677978f30caf4a76c400.png

(2)循环内容

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

fa8ba9e242f9035ccfe07faf28560349.png

(3)循环结束

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

ad7c052163f05e8d296a1251966b4096.png

[备注]

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

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

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

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

c2a2ac2ff4e14ade16ff9d1301ea3bdc.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」

3eebc86f09e3c11ded2f9543879932ea.png

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

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

55e6f817ad732bf7bcfe8fc09a1ff6a6.png

此时,「变量 x = 2」

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

0890bef31598b3ad4ce14abdb162b1dd.png

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

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

fb113f1c5a047a777d4f519b5907c024.png

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

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

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

2.代码排版

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

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

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

0d10ecd8eb9dd6eec9d58d74c83a0b5b.png

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

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

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

(1)按「Tab」代码缩进

cbfe318dc026c8d1b9becfa98eb75d33.png

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

3c75fe1a2d5803688ce61f5bbe142002.png

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

3.总结

(1)For循环结构

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

de9c2af2c38051954ed27b0ae1ca3256.png

(2)VBA代码排版

“帅气”VBA路,从Tab起步

42c4c7d5cbfba9c7caa9369040f77d03.png

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

5d6c82e179fb2287a8ace19c8eaf2877.png

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

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

相关文章

连接到kali linux服务器上的MySQL服务器错误

前言:想把数据库什么的都放在虚拟机kali Linux里,但无奈出了好多错误。 首先:可以参照上一篇文章开启kali服务器端的远程连接功能,上一篇文章 然后:使用window端的sqlyog(MySQL图形化连接工具)连…

dedecms后台怎么添加发布软件?织梦后台软件内容管理

使用织梦cms有很多的功能,其中有一个是在dedecms后台添加发布软件,然后在前台大家可以直接下载软件,在织梦cms后台怎么添加发布软件呢?下面是织梦软件内容管理的主要操作步骤。使用织梦cms有很多的功能,其中有一个是在…

301 302区别_如何正确理解301,302和canonial标签

今天我们来学习一下几个比较容易混淆的页面跳转标签,301,302,relcanonial。在谷歌SEO里面,我们比较容易常见的是第一个301,302和canonial出现的比较少,但是不代表不存在,我会尝试从以下价格方面…

为什么手机游戏手柄没有流行起来?

问答社区知乎上有人提了一个问题,“为什么手机用游戏手柄没有流行?” Ta找了不少论证:1)手机用户数量很大;2)大量用户在手机上花费最多时间的是玩游戏;3)游戏机平台(的游…

c++排序算法ppt_C/C++学习教程:C语言排序算法—插入排序算法

前言:插入排序算法是所有排序方法中最简单的一种算法,其主要的实现思想是将数据按照一定的顺序一个一个的插入到有序的表中,最终得到的序列就是已经排序好的数据。直接插入排序是插入排序算法中的一种,采用的方法是:在…

python函数参数

1.位置参数 2.默认参数 指向参数为不可变对象 3.可变参数 **args 一个列表list或是元组tuple 4.关键字参数 **kw,是一个字典dict 5.命名关键字参数 *, 转载于:https://www.cnblogs.com/aliy-pan/p/5198025.html

Python 常用函数 configparser模块

使用ConfigParser模块读写ini文件 ConfigParserPython的ConfigParser Module中定义了3个类对INI文件进行操作。分别是RawConfigParser、ConfigParser、SafeConfigParser。模块所解析的ini配置文件是由多个section构成,每个section名用中括号‘[]’包含,每…

自制Unity小游戏TankHero-2D(3)开始玩起来

自制Unity小游戏TankHero-2D(3)开始玩起来 我在做这样一个坦克游戏,是仿照(http://game.kid.qq.com/a/20140221/028931.htm)这个游戏制作的。仅为学习Unity之用。图片大部分是自己画的,少数是从网上搜来的。您可以到我的github页…

VirtualBox虚拟机安装CentOS 7

新建虚拟机 因为比较简单,所以对于VirtualBox就不做过多介绍了,直接下载安装即可,安装好之后打开Oracle VM VirtualBox管理器,点击新建,选择Red Hat(根据windows主机选择 32/64 bit,通常会自动识…

从C语言到C++成长经历所得的一些技巧和感悟

我介绍几个办法,学习办法,期望你能找到爱好1。必定要和喜爱编程的,或编程凶猛的,或常常编程的人,在一同,常常探讨问题!初学编程会有许多问题呈现,你自己很 难处理 c是我们必定要学的…

java基础篇---网络编程(UDP程序设计)

UDP程序设计 在TCP的索引操作都必须建立可靠地连接,这样一来肯定会浪费大量的系统性能,为了减少这种开销,在网络中又提供了另外一种传输协议---UDP,不可靠的连接,这种协议在各个聊天工具中被广泛的应用。 咋UDP开发中使用Datagram…

c++ 静态变量赋值_Python变量及常量解释说明

变量(1)在计算机程序中,变量不仅可以是数字,还可以是任意数据类型,变量子啊程序中就是一个变量名表示的,变量名必须是大小写英文,数字,和"_"的组合,切不能以数字开头.a 1 #变量a是一个整数1b "shuai" #变量b是一个字符串1c True #变量c是一个布尔值Tru…

Hibernate中session的clear(),flush(),evict()方法详解

2019独角兽企业重金招聘Python工程师标准>>> 一、Clear 方法 无论是Load 还是 Get 都会首先查找缓存(一级缓存) 如果没有,才会去数据库查找,调用Clear() 方法,可以强制清除Session缓存。例: pub…

40_自定义泛型方法及其应用

java的泛型不同于C的模板方法那么强大。java的泛型只停留在编译阶段,编译通过后泛型特征被擦除,主要因为保证jvm的效率。 用泛型知识,写一个交换数组元素的方法(此方法只适合于引用类型数组!因为int[]不会自动转为Integer[]!&…

SQL Server代理(11/12):维护计划作业

SQL Server代理是所有实时数据库的核心。代理有很多不明显的用法,因此系统的知识,对于开发人员还是DBA都是有用的。这系列文章会通俗介绍它的很多用法。 在这一系列的上一篇,我们看了使用代理帐户模仿Windows安全上下文完成作业步骤的工作。大…

XtraBackup全备与增量备份

一、XtraBackup安装 下载地址:http://www.percona.com/downloads/XtraBackup/XtraBackup-2.2.8/source/ 安装步骤: How to build XtraBackup on Linux Prerequisites -------------$ yum install cmake gcc gcc-c libaio libaio-devel automake autocon…

《大话设计模式》 国外资料

It is not easy to remember all design patterns. Here are some stories about design patterns which might help! Creational Singleton – Only one president in AmericaFactory – A factory that produces humanAbstract Factory – An abstract factory to produce CP…

python arcgis 图书_arcgis python

本书作者是GIS发方面的知名作者,曾著有《JavaScript构建Web和ArcGIS Server应用实战》(Building Web and Mobile ArcGIS Server Applications with JavaScript)一书。 本书内容易学易懂,帮助读者成为GIS发高手。《面向ArcGIS的Python脚本编程》是一本指导…

博客园客户端UAP开发随笔 -- App连接云端内容的桥梁:WebView

当你辛苦的从网上爬下来一篇文章之后,怎么在你的应用内展示这些包含HTML标记的文章?如果你使用的是Javascript开发应用,恭喜你,直接塞进页面就可以了,同时说明你很熟悉页面开发,而现在windows也支持这种方式…

C4.5

C4.5是机器学习算法中的另一个分类决策树算法,它是基于ID3算法进行改进后的一种重要算法,相比于ID3算法,改进有如下几个要点: 用信息增益率来选择属性。ID3选择属性用的是子树的信息增益,这里可以用很多方法来定义信息…