站内搜索:

循环for each(多值逐一循环)把当前工作表中的所有sheet提取到1张sheet中

浏览人数:
实例一:
worksheets是一个工作表的集合,而wsh是工作表中的逐个工作表,然后把逐个的表输出到对应的位置就可以了。
 

Sub foreach_in_next()
Dim wsh As Worksheet
For Each wsh In Worksheets
n = n + 1
m = wsh.Name
ActiveSheet.Cells(5 + n, 2) = m
Next
End Sub

wsh是单个的工作表对象,worksheets是一个工作表集合(多个工作表)

实例二:
我们先指定一个单元格的区域,对符合条件的添加背景颜色。
指定A1至A9,在这个区域中,值等于1的,背景颜色设置为index中的3这个颜色(红色)

Sub foreach和in和next测试()
Dim rng As Range
For Each rng In Range("a1:a9")
  If rng = "1" Then
  rng.Interior.ColorIndex = 3
  Else
  'MsgBox rng
  End If
Next
End Sub
 

interior

美 [ɪnˈtɪriər]英 [ɪnˈtɪəriə(r)] 复数:interiors  


我们来拓展一下颜色相关的内容,第1列就是vba所对应的,也可以使用第2个的数字来代替,第3列是html的代码颜色。



实例三:
第9列是一个班级表,有不同的班别,比如1班,2班,3班,使用循环求出每个班的人数,
i变量是用以记录当前的行数,当是1班的时候,记入i1变量,2班的时候记入i2变量,3班的时候记入i3变量。所以申明各变量为整数。
 

Sub ban()
Dim i%, i1%, i2%, i3%
For i = 1 To 100 Step 1
    If ActiveSheet.Cells(i, 9) = "1班" Then
    i1 = i1 + 1
    End If
    If ActiveSheet.Cells(i, 9) = "2班" Then
    i2 = i2 + 1
    End If
    If ActiveSheet.Cells(i, 9) = "3班" Then
    i3 = i3 + 1
    End If
Next
MsgBox i1
MsgBox i2
MsgBox i3
End Sub
 


最后使用弹窗的方式,显示出1班人数,2班的人数,3班的人数。
上一篇: DO循环

制作表格zhizuobiaoge.com
Copyright@all rights reserved