当前位置: 首页 > news >正文

for each循环语句

for each循环语句

  • for each.....next
      • For Each 的案例

for each…next

1、循环对象合集

worksheets
workbooks
range  range("区域")selection (选中的区域)usedrange或者currentregion 返回的单元格区域格式:
for each 变量名 in 对象集合(范围)循环内容
next
循环工作簿例子:
Sub t()
Dim s As Workbook   //用s代表工作簿数据类型For Each s In Workbooks  //循环工作簿的集合用s代表MsgBox s.Name// s在工作簿中循环Next
End Sub  //打开多少个就循环多少个
In Workbooks、in worksheets都可以替换,in后面是一个自定义范围循环工作表例子	:
Sub t1()
Dim s As Worksheet   //用s代表工作表数据类型(申明成一个工作表)For Each s In Worksheets  //循环工作表的集合用s代表MsgBox s.Name// s在工作表中循环Next
End Sub s就是Worksheet的代号
s.name==Worksheet.name
在工作表(簿)中循环,有多少个就循环多少个

把工作表的名称依次修改为123456

Sub t1()
Dim s As Worksheet  //这个区域的表格元素For Each s In Worksheets//In Worksheets代表范围n = n + 1       n从0()开始s.Name = n      s.Name = n=1赋予当前循环到的工作表Next
End SubSub r()
Dim a As Range
For Each a In Range("A1:E11")  (方位写死)MsgBox a
Next
End SubSelection:是我自主在表中框选的
动态选框(大范围或者小范围循环)
Sub r()
Dim a As Range
For Each a In SelectionMsgBox a
Next
End Sub替换:For Each a In sheet("2").usedrange  //动态获取数据区域
For Each a In sheet("2").[单元格]currentrange
n = n + 1
s.Name = n
n=0时,把0+1赋予了n,n=1,1带入s.name=1,所以worksheet.name=1,有多少就循环多少

在这里插入图片描述

For Each 的案例

在这里插入图片描述
1、

Sub te()
Dim bg As Range
For Each bg In Range("c2", Cells(Rows.Count, 3).End(xlUp))If bg.Value < 60 Thenbg.Interior.ColorIndex = 3End If
Next
End Sub

在这里插入图片描述

其中:如何得出
Range("c2", Cells(Rows.Count, 3).End(xlUp))
由以下的演变过来:(都表示范围)
Range("c2", "C21").Select
Range("c2", Cells(21, 3)).Select
Range("c2", Cells(1048576, 3).End(xlUp)).Select
Range("c2", Cells(Rows.Count, 3).End(xlUp)).Select

2、从B2单元格向下循环到最尾端,循环出来的事“男”,就兴建对应名字的工作表
过程:
在这里插入图片描述

//前提:不可出现同名
Dim nan As Range, n%
For Each nan In Range(Sheet1.[b2], Sheet1.Cells(Rows.Count, 2).End(xlUp))n = n + 1 '累计数  (n被赋值编程1)If nan.Value = "男" Then'就新建并修改对应名字(命名)的工作表Worksheets.Add.Name = Sheet1.Cells(n + 1, 1)1进来变成2)'命名循环出来的单元格左边的单元格End If
Next nan
End Sub
可以优化(新增放在sheet1工作表的后面)
Worksheets.Add.Name = Sheet1.Cells(n + 1, 1)
# 加上(after:=sheets(sheets.Count))进行统计后凡在后面
Worksheets.Add(after:=sheets(sheets.Count)).Name = Sheet1.Cells(n + 1, 1)

相关文章:

  • FPGA芯片的配置方法
  • [Java 基础]HashMap
  • Element Plus el-button实例类型详解
  • 什么是数字签名(ECDSA)?
  • 非阻塞 IO
  • Java面试题030:一文深入了解MySQL(2)
  • 将文档转为数据集
  • FPGA内部资源介绍
  • tf serving和torch serve哪个耗时更低
  • 数据结构与算法总概
  • 鸿蒙 Grid 与 GridItem 深度解析:二维网格布局解决方案
  • 操作系统的概述之二
  • 探索钉钉生态中的宜搭:创建与分享应用的新视界
  • SpringMVC系列(六)(Restful架构风格(中))
  • 每日算法刷题Day40 6.27:leetcode前缀和3道题,用时1h20min
  • 鸿蒙5:布局组件
  • Linux环境安装Redis的多种方式分析
  • [Java 基础]LinkedList
  • 矩阵的条件数(Condition Number of a Matrix)
  • FPGA产品