题目要求:用户在EXCEL工作表中写了很多数字,并被选中,要求编写一个程序能够使这些数字中有小于0的数字时,弹出对话框来提问“该单元格中的数值小于0,是否需要更正”,选是,则把原数值改成其10倍,选否,则不做任何动作。
Sub test()
Dim rng As Range
Set rng = Selection
Dim f As WorksheetFunction
Set f = WorksheetFunction
If f.CountIf(rng, "<0") > 0 Then
If MsgBox("该单元格中的数值小于0,是否需要更正", vbOKCancel) = vbCancel Then Exit Sub
Dim cel As Range
For Each cel In rng
If cel.Value < 0 Then
If IsNumeric(cel.Value) Then
cel = cel.Value * 10
End If
End If
Next
End If
End Sub
加个按钮引用上面宏
单元格具体位置没有说,您可以假设几种情况,比如A1到E8中放入一些数字,且这其中还有空缺的单元格。
追答