使用Excel 我有一段时间试图让包含的代码工作。 我试图将输入到单元格中的值限制为" A / B / C"它们可以输入大写或小写。如果以小写形式输入值,则此脚本会成功将值更改为大写。
当编号不是" A / B / C"时,编码会失效。进入了。
我想要实现的目标如下:
我已经注意到失败的那条线。
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Intersect(Target, Range("C9:C51")) Is Nothing Then
Else
With Target
If UCase(.Text) <> .Text Then
.Value = UCase(.Text)
' ElseIf .Text < "A" Or .Text > "C" Then .Value = ""
End If
End With
End If
End Sub
有人可以建议解决这个问题吗?
答案 0 :(得分:1)
也许:
<击>
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
如果相交(目标,范围(&#34; C9:C51&#34;))则没有
其他
与目标
如果UCase(.Text)&lt;&gt; .Text然后
.Value = UCase(.Text)
如果.Value =&#34; A&#34;或.Value =&#34; B&#34;或.Value =&#34; C&#34;然后
其他
.ClearContents
万一
万一
结束
万一
结束次
<击> 撞击> 修改#1:强>
根据以下评论,应改为使用:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Intersect(Target, Range("C9:C51")) Is Nothing Then
Else
With Target
Application.EnableEvents = False
.Value = UCase(.Text)
If .Value = "A" Or .Value = "B" Or .Value = "C" Then
Else
.ClearContents
End If
Application.EnableEvents = True
End With
End If
End Sub