Excel里将小于60的单元格都改为60
今天一个朋友在处理成绩时需要将所有单元格里小于60的都改成60分,她开始的想法是用查找替换,Excel还真不支持这种呢,我看了一下量挺大的,就帮她写了一个小VBA程序,功能是将选中区域内的所有单元格值做替换,当然是有条件的替换了,代码如下,详细的条件就不解释了,我有注释的:
在宏里设置一下快捷下,选中按CTRL+SHIFT+F就自动替换了,一下子完成了几万条记录的更改,真爽。
在宏里设置一下快捷下,选中按CTRL+SHIFT+F就自动替换了,一下子完成了几万条记录的更改,真爽。
Sub SetTo60()
'
' 将小于60分的单元格设为60
' 宏由 YangBH 录制,时间: 2008-4-21
' QQ:283522147
' 快捷键: Ctrl+Shift+F
'
Dim oStr As String '获取当前计算单元格的内容
Dim oSel As Range '定义当前计算的区域(单元格)
Dim oSng As Single '获取当前计算机单元格的单精度值
For Each oSel In Selection
oStr = Cells(oSel.Row, oSel.Column).Value
If oStr <> "" Then '空单元格直接不操作,进入下层循环
If IsNumeric(oStr) Then '不能转换为数值类型时跳过,进入下层循环
oSng = CSng(oStr)
If oSng < 60 Then '如果小于60则填充为60
If oSng <> 0 Then '如果等于0则跳过,进入下层循环
Cells(oSel.Row, oSel.Column).Value = 60
End If
End If
End If
End If
Next oSel
End Sub
'
' 将小于60分的单元格设为60
' 宏由 YangBH 录制,时间: 2008-4-21
' QQ:283522147
' 快捷键: Ctrl+Shift+F
'
Dim oStr As String '获取当前计算单元格的内容
Dim oSel As Range '定义当前计算的区域(单元格)
Dim oSng As Single '获取当前计算机单元格的单精度值
For Each oSel In Selection
oStr = Cells(oSel.Row, oSel.Column).Value
If oStr <> "" Then '空单元格直接不操作,进入下层循环
If IsNumeric(oStr) Then '不能转换为数值类型时跳过,进入下层循环
oSng = CSng(oStr)
If oSng < 60 Then '如果小于60则填充为60
If oSng <> 0 Then '如果等于0则跳过,进入下层循环
Cells(oSel.Row, oSel.Column).Value = 60
End If
End If
End If
End If
Next oSel
End Sub