excelexcel 循环引用问题?

如何在excel中快速查找重复记录 =IF(COUNTIF(A:A,A1)>1,"重复","") 假设数字在A列,数字由第二行开始,在B2输入公式: =IF(COUNTIF(A:A,A2)>1,"重复","") 把鼠标放在B2单元格的右下角变成黑十字时按鼠标左键向下拉, 再以B列排序或筛选,将标有“重复”的行删除即可。

在使用VBA表格出来程序的时候,最核心的逻辑有两点,一是循环,二是判断语句。一般要么是循环里面嵌套判断语句,要么就是判断语句里面嵌套判断语句。更复杂点的就是嵌套里面既有循环还有判断。今天重点通过一个小小的例子,说明一下VBA中的常见的五种循环语句。

For each… in .. Next 主要是遍历元素集合,比如数组,对象,文件什么。

初学者最好先掌握好For Next 和Do While … loop,然后再学一下 IF … Then ..的判断语句。就基本上可以应对大部分EXCEL表格处理的问题了,至少模拟一下EXCEL自带的公式是绰绰有余了。

今天通过解决一个小问题来学习一下这五种循环。

问题:通过编写VBA匹配生产企业中的省市名称。比如要提取A列“中山市花城食品饮料有限公司”中的地级市名称“中山”两字到B列中,如下图:

当你知道你需要重复运行多少次某段语句时,可以使用For…Next语句。它的语法如下:

比如计算2到100之间所有偶数之和,就可以这样写:

解决省市匹配的问题 如图:

首先我们需要用for循环读取要查找的企业名称,A列从第2行到第33行:

然后我们需要用for循环读取被查找的广东省的省市地址关键词,C列从第2行到第23行:

再次我们需要在企业名称里面(strName)查找广东省的省市地址关键词(strAddr),我们需要用到

Instr()这个函数。加上判断语句是这样的:

最后我们将我们的代码汇总下:

Sub 提取企业名称省市()

如果不知道循环多少次,可以用Do ..while循环 只要或者直到某个条件为真,它们就会重复一系列的语句。语法如下:

或者也可以写成第二种写法:

第二种写法循环体内的代码至少会运行一次。

比如刚才的计算2到100之间所有偶数之和,就可以这样写:

解决省市匹配的问题 ,思路是一样的,只是用Do while 循环代替了For 循环。

首先我们需要用Do While循环读取要查找的企业名称,A列从第2行到第33行:

然后我们需要用Do While循环读取被查找的广东省的省市地址关键词,C列从第2行到第23行:

再次我们需要在企业名称里面(strName)查找广东省的省市地址关键词(strAddr),我们需要用到

Instr()这个函数。加上判断语句是这样的:

最后我们将我们的代码汇总下:

Sub 提取企业名称省市W()

可以解释为不满足 Until的条件时,执行循环体内的语句:

也可以讲 Until放在后面,这样循环体内的语句至少执行一次:

计算2到100之间所有偶数之和,就可以这样写:

解决省市匹配的问题,代码如下:

Sub 提取企业名称省市D()

且VBA保留它也是为了支持兼容性。该循环以关键字While开始以关键字Wend结束。这是它的语法:

条件在循环的上面就被测试,只要提供的条件为真,这些语句就会被执行。一旦条件为假,VB就将

计算2到100之间所有偶数之和,就可以这样写:

当你的过程需要在一个集合的所有对象或者一个数组的所有元素(数组将在第七章里涉及)之间循

环时,应该使用For Each…Next循环。该循环不需要计数器变量,VB自己知道应该执行几次循环。

其中Num 为数组,For Each N In Num 时读取数组里的每一个数值,然后执行循环体内的语句。

Start – 一个可选参数。指定搜索的起始位置。搜索从第一个位置开始,从左到右。

String1 – 必需的参数。要搜索的字符串。

String2 – 必需的参数。要在String1中搜索的字符串。

Compare – 一个可选参数。指定要使用的字符串比较。它可以采取以下提到的值:

编者的话:写了两天终于写完了,自己也学了不少东西。那啥,求关注,求转发。关注后留言,可有机会定制属于自己的VBA 代码工具。

我要回帖

更多关于 excel 循环引用 的文章

 

随机推荐