赞
踩
在VBA中我要把B列中所有的非空单元格的值都判断一遍,如果大于60就在其旁边的单元格写入"及格",反之就写入不及格。如下图所示:
由于B列的非空单元格数量无法确定,所以我们就要定义一个自定义的函数来获取B列中最后一个非空单元格的值,然后再进行遍历循环。为了使程序更加清晰,我决定事先定义一个函数,然后在主程序中进行调用自定义函数的返回值。
在VBA中我们插入一个模块,编写一下自定义的函数
- Function lastRow(col As Range) As Long
- lastRow = col.Cells(col.Cells.Count).End(xlUp).Row
- End Function
这里面,lastRow是函数名,括号中的col as Range是指参数名和类型。
调用这个函数时,我们可以用函数名(参数),如lastRow(Range(B:B))
在VBA中,End(xlUp)是一个用于定位单元格的方法,它可以用于查找某一列或行最后一个非空单元格的位置。
End(xlUp)的作用是,从当前单元格向上搜索,直到遇到第一个非空单元格。它返回的是一个Range对象,该对象代表了搜索到的单元格的位置。
在使用End(xlUp)方法时,通常需要先指定起始单元格,然后使用End(xlUp)方法来查找最后一个非空单元格的位置。例如,以下代码可以查找A列中最后一个非空单元格的位置:
lastRow = Range("A1").End(xlDown).Row
- Sub 逻辑判断()
-
- Dim last As Long
-
- last = lastRow(Range("B:B")) '直接获取函数的返回值。
-
- For i = 1 To last
- If Range("b" & i) < 60 Then
- Range("c" & i).Value = "不及格"
- Else
- Range("c" & i).Value = "及格"
- End If
- Next i
- End Sub
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。