EXCEL中怎么设定A1单元格只能输入数值10或10的倍数,并且数值在10-2000之间的追加问题

2025-03-20 09:56:21
推荐回答(5个)
回答1:

'1、将以下代码粘贴到工作表的代码窗口中,可保证A1单元格只能输入10-2000之间的10的倍数
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("A1") = "" Then Exit Sub
If Range("A1") < 10 Then
MsgBox "你输入的数字小于10!", vbOKOnly, "错误"
Range("A1") = ""
Exit Sub
End If
If Range("A1") > 2000 Then
MsgBox "你输入的数字大于2000!", vbOKOnly, "错误"
Range("A1") = ""
Exit Sub
End If
If Range("A1") <> Int(Range("A1") / 10) * 10 Then
MsgBox "你输入的数字不是10的倍数!", vbOKOnly, "错误"
Range("A1") = ""
End If
End Sub
'如果A1数值小于18则D1可输入的数值区间为10-2000且小于B1的5倍;如果A1大于等于18小于65则D1可输入10-5000且小于B1的5倍;同时D1的数值需为10的整数倍;如何设置?
'2、将以下代码粘贴到工作表的代码窗口,可实现你的要求。注意不能将代码1和代码2粘贴到同一个工作表中。
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("A1") = "" Then Exit Sub
If Range("D1") = "" Then Exit Sub
If Range("A1") >= 65 Then
MsgBox "你输入A1的数字大于或等于65啦!", vbOKOnly, "错误"
Range("A1") = ""
Exit Sub
End If

If Range("A1") < 18 Then
If Range("D1") < 10 Then
MsgBox "你输入D1的数字小于10!", vbOKOnly, "错误"
Range("D1") = ""
Exit Sub
End If
If Range("D1") > 2000 Then
MsgBox "你输入D1的数字大于2000!", vbOKOnly, "错误"
Range("D1") = ""
Exit Sub
End If
If Range("D1") >= Range("B1") * 5 Then
MsgBox "你输入D1的数字不小于B1的5倍!", vbOKOnly, "错误"
Range("D1") = ""
Exit Sub
End If
If Range("D1") <> Int(Range("D1") / 10) * 10 Then
MsgBox "你输入D1的数字不是10的倍数!", vbOKOnly, "错误"
Range("D1") = ""
Exit Sub
End If
End If

If Range("A1") >= 18 Then
If Range("D1") < 10 Then
MsgBox "你输入D1的数字小于10!", vbOKOnly, "错误"
Range("D1") = ""
Exit Sub
End If
If Range("D1") > 5000 Then
MsgBox "你输入D1的数字大于5000!", vbOKOnly, "错误"
Range("D1") = ""
Exit Sub
End If
If Range("D1") >= Range("B1") * 5 Then
MsgBox "你输入D1的数字不小于B1的5倍!", vbOKOnly, "错误"
Range("D1") = ""
Exit Sub
End If
If Range("D1") <> Int(Range("D1") / 10) * 10 Then
MsgBox "你输入D1的数字不是10的倍数!", vbOKOnly, "错误"
Range("D1") = ""
Exit Sub
End If
End If
End Sub

回答2:

按照你的描述,如果A1数值小于18则D1可输入的数值区间为10-2000且小于B1的5倍;如果A1大于等于18小于65则D1可输入10-5000且小于B1的5倍,同时D1的数值需为10的整数倍;如何设置?
同时A1中的数据不可能大于65,D1数据有效性的公式可为
=(D1>=10)*(D1<=5000-3000*(A1<18))*(D1<5*B1)*(D1=TRUNC(D1,-1))

回答3:

选中D1
数据->有效性, 弹出的对话框,
设置中,数据 选自定义, 公式里输入=IF(A1<18,AND(MOD(D1,10)=0,D1<5*B1,D1<2000),AND(MOD(D1,10)=0,D1<5*B1,D1<5000))

回答4:

不好意思,应该是通过数据有效性和条件格式都无法设置,因为他们都住支持if

回答5:

大于等于65时D1有什么输入限制?