用VBA 写一个 统计表格K列个数 统计其中大于等于60有多少 大于等于75有多少
时间: 2023-03-06 20:53:42 浏览: 75
以下是用VBA编写的统计表格K列中大于等于60和大于等于75的数量的代码:
```
Sub 统计表格K列()
Dim 大于等于60的数量 As Long
Dim 大于等于75的数量 As Long
Dim i As Long
Dim 最后一行 As Long
最后一行 = Cells(Rows.Count, "K").End(xlUp).Row
For i = 1 To 最后一行
If Cells(i, "K").Value >= 60 Then
大于等于60的数量 = 大于等于60的数量 + 1
End If
If Cells(i, "K").Value >= 75 Then
大于等于75的数量 = 大于等于75的数量 + 1
End If
Next i
MsgBox "大于等于60的数量为:" & 大于等于60的数量 & vbCrLf & "大于等于75的数量为:" & 大于等于75的数量
End Sub
```
首先,这个代码会找到表格K列中的最后一行。然后,它会循环遍历从第一行到最后一行的所有行。对于每一行,它会检查K列的值是否大于等于60和大于等于75。如果是,它会将相应的计数器加1。最后,代码将使用 `MsgBox` 显示大于等于60和大于等于75的数量。
相关问题
用VBA 写一个 统计表格K列的总个数 并统计其中大于等于60有多少 大于等于75有多少并输出到单元格
### 回答1:
以下是使用VBA编写的代码,用于统计表格K列的总个数,以及其中大于等于60和大于等于75的数量,并将结果输出到单元格。
```
Sub 统计表格K列()
Dim 总数 As Long
Dim 大于等于60的数量 As Long
Dim 大于等于75的数量 As Long
Dim i As Long
' 获取表格的行数
Dim 行数 As Long
行数 = Range("K:K").Cells.SpecialCells(xlCellTypeConstants).Count
' 统计总数、大于等于60的数量和大于等于75的数量
For i = 1 To 行数
If Range("K" & i).Value <> "" Then
总数 = 总数 + 1
If Range("K" & i).Value >= 60 Then
大于等于60的数量 = 大于等于60的数量 + 1
End If
If Range("K" & i).Value >= 75 Then
大于等于75的数量 = 大于等于75的数量 + 1
End If
End If
Next i
' 输出结果到单元格
Range("A1").Value = "总数"
Range("B1").Value = 总数
Range("A2").Value = "大于等于60的数量"
Range("B2").Value = 大于等于60的数量
Range("A3").Value = "大于等于75的数量"
Range("B3").Value = 大于等于75的数量
End Sub
```
要使用此代码,请打开Excel,按下Alt+F11打开Visual Basic Editor,然后将代码复制并粘贴到新模块中。最后,返回Excel,并运行此宏。
### 回答2:
使用VBA编写一个统计表格K列的总个数,并统计其中大于等于60的个数和大于等于75的个数,并将结果输出到单元格,可以按照以下步骤进行:
1. 打开 Excel,并按下 ALT + F11 快捷键,进入 VBA 编辑器界面。
2. 在左侧的“项目”窗格中,选择你的工作簿的名称。
3. 点击“插入”菜单,选择“模块”,在弹出的窗口中粘贴以下代码:
```vba
Sub 统计()
Dim ws As Worksheet
Dim dataRange As Range
Dim cell As Range
Dim totalCount As Integer
Dim count60 As Integer
Dim count75 As Integer
' 设置要操作的工作表
Set ws = ThisWorkbook.Sheets("Sheet1") ' 把“Sheet1”替换为你的工作表的名称
' 定义要统计的范围,此处以K1至K最后一行为例
Set dataRange = ws.Range("K1:K" & ws.Cells(ws.Rows.count, "K").End(xlUp).Row)
' 初始化计数器
totalCount = 0
count60 = 0
count75 = 0
' 遍历数据范围,进行统计
For Each cell In dataRange
totalCount = totalCount + 1
If cell.Value >= 60 Then
count60 = count60 + 1
End If
If cell.Value >= 75 Then
count75 = count75 + 1
End If
Next cell
' 将统计结果输出到单元格
ws.Range("A1").Value = "总个数:"
ws.Range("B1").Value = totalCount
ws.Range("A2").Value = "大于等于60的个数:"
ws.Range("B2").Value = count60
ws.Range("A3").Value = "大于等于75的个数:"
ws.Range("B3").Value = count75
' 清除对象引用
Set ws = Nothing
Set dataRange = Nothing
Set cell = Nothing
End Sub
```
4. 将代码中的"Sheet1"替换为你要操作的工作表的名称。
5. 按下 F5 键或点击 VBA 编辑器工具栏中的运行按钮来执行代码。
6. 执行后,结果将会显示在单元格 A1、B1、A2、B2 以及 A3、B3 中,分别表示总个数、大于等于60的个数和大于等于75的个数。
以上就是利用 VBA 编写的统计表格 K 列的总个数,并统计其中大于等于60和大于等于75的个数,并将结果输出到相应单元格的方法。
### 回答3:
下面是使用VBA编写的实现要求的代码:
```vba
Sub 统计表格数据()
Dim lastRow As Long
Dim totalCnt As Long
Dim cnt60 As Long
Dim cnt75 As Long
' 获取最后一行的行号
lastRow = Cells(Rows.Count, "K").End(xlUp).Row
' 初始化计数器
totalCnt = 0
cnt60 = 0
cnt75 = 0
' 遍历统计K列中的数据
For i = 1 To lastRow
If IsNumeric(Cells(i, "K").Value) Then
totalCnt = totalCnt + 1
If Cells(i, "K").Value >= 60 Then
cnt60 = cnt60 + 1
End If
If Cells(i, "K").Value >= 75 Then
cnt75 = cnt75 + 1
End If
End If
Next i
' 将统计结果输出到指定单元格
Cells(1, "M").Value = totalCnt
Cells(2, "M").Value = cnt60
Cells(3, "M").Value = cnt75
End Sub
```
这个VBA宏会将K列中的总个数、大于等于60的个数和大于等于75的个数分别统计出来,并分别输出到M1、M2和M3单元格中。你可以将该代码复制到VBA编辑器中,然后运行宏来实现统计操作。
利用vba写一段代码,统计每个学校中有多少个班级,并且每个各年级有多少个班
### 回答1:
我可以提供一些提示来帮助你:1. 使用循环语句,例如For循环,来遍历学校中的每个班级和每个年级;
2. 在循环内部统计每个班级和每个年级的数量;
3. 将统计结果显示出来。下面是一段示例代码:Dim i As Integer
Dim nClass As Integer
Dim nGrade As IntegerFor i = 1 To nSchool
nClass = nClass + nClass(i) '统计每个学校的班级数
nGrade = nGrade + nGrade(i) '统计每个学校的年级数
NextMsgBox "这个学校一共有" & nClass & "个班级," & nGrade & "个年级。"
### 回答2:
使用VBA编写代码来统计每个学校中的班级数量以及每个年级中的班级数量。
首先,需要将数据存储在Excel表格中。表格的第一列应该是学校名称,第二列是班级名称,第三列是年级名称。假设数据存储在Sheet1中的A列至C列。
以下是实现上述功能的VBA代码:
```vba
Sub 统计班级数量()
Dim 学校 As Range
Dim 班级 As Range
Dim 年级 As Range
Dim 学校名称 As String
Dim 年级名称 As String
Dim 班级数量 As Integer
Dim 年级班级数量 As Integer
Set 学校 = Sheet1.Range("A2:A" & Sheet1.Cells(Rows.Count, 1).End(xlUp).Row)
' 清除之前的结果
Range("E:F").ClearContents
For Each 学校名称 In 学校
班级数量 = 0
年级班级数量 = 0
Set 班级 = Sheet1.Range("B2:B" & Sheet1.Cells(Rows.Count, 2).End(xlUp).Row)
For Each 班级名称 In 班级
If 班级名称.Offset(0, -1).Value = 学校名称 Then
班级数量 = 班级数量 + 1
Set 年级 = Sheet1.Range("C2:C" & Sheet1.Cells(Rows.Count, 3).End(xlUp).Row)
For Each 年级名称 In 年级
If 年级名称.Offset(0, -2).Value = 学校名称 And 年级名称.Value = 班级名称.Offset(0, 1).Value Then
年级班级数量 = 年级班级数量 + 1
End If
Next 年级名称
End If
Next 班级名称
' 将结果写入第五列和第六列
学校名称.Offset(0, 3).Value = 班级数量
学校名称.Offset(0, 4).Value = 年级班级数量
Next 学校名称
End Sub
```
上述代码首先将需要统计的学校名称存储在Range对象"学校"中。然后,我们使用嵌套的For Each循环遍历每个学校和每个班级,统计班级数量和每个年级中的班级数量。最后,将结果写入第五列和第六列。
请确保在运行代码之前在VBA编辑器中添加对Sheet1的引用。您可以根据需要修改代码以匹配实际的数据存储位置和工作表名称。
### 回答3:
利用VBA编写代码,可以统计每个学校中有多少个班级以及每个年级有多少个班级。下面是一个示例代码实现:
```
Sub 统计班级()
Dim 学校 As Worksheet
Set 学校 = ThisWorkbook.Sheets("学校数据") ' 假设学校数据在名为"学校数据"的工作表中
Dim 班级 As Range
Dim 年级 As Range
' 统计每个学校中的班级数量
For Each 班级 In 学校.Range("A2:A" & 学校.Cells(Rows.Count, "A").End(xlUp).Row) ' A列中存储学校名称,从第2行开始
班级.Offset(0, 1).Value = WorksheetFunction.CountIf(学校.Range("A2:A" & 学校.Cells(Rows.Count, "A").End(xlUp).Row), 班级.Value)
' 将班级数量写入当前班级所在行的B列
Next 班级
' 统计每个年级中的班级数量
For Each 年级 In 学校.Range("B2:B" & 学校.Cells(Rows.Count, "B").End(xlUp).Row) ' B列中存储年级,从第2行开始
年级.Offset(0, 1).Value = WorksheetFunction.CountIf(学校.Range("B2:B" & 学校.Cells(Rows.Count, "B").End(xlUp).Row), 年级.Value)
' 将班级数量写入当前年级所在行的C列
Next 年级
End Sub
```
这段代码首先设置了一个名为"学校数据"的工作表作为数据来源。然后,通过两个循环分别统计了每个学校中的班级数量和每个年级中的班级数量。在循环中使用了`CountIf`函数来计算某个范围中符合条件的单元格数量,并将结果写入相应的单元格中。
注意,代码中的范围和列索引需要根据你的实际数据进行调整,确保准确获取数据和写入结果。