您好我正在尝试通过VBA在Excel中创建单元格验证。我试图通过使用外卡来完成此操作,以便该单元格中的验证将基于数据条目中的第一个字符。
以下是我正在使用的代码。
Dim wild1 as string
wild1 = Cells(11, 7) Like "b*"
With Cells(11, 7).Validation
.Delete
.Add Type:=xlValidateCustom, AlertStyle:=xlValidAlertStop, Formula1:=wild1
End With
使用上面的代码,每当我尝试在Cell(11,7)中输入内容时,我都会收到验证错误。如果该单元格中数据条目中的第一个字符以b开头,我将如何更改此值以使数据条目有效?
谢谢!
答案 0 :(得分:0)
这是基于 simoco的注释.........此事件代码位于工作表代码区域中:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ch As String
If Intersect(Target, Cells(11, 7)) Is Nothing Then Exit Sub
If Target.Count > 1 Then Exit Sub
ch = Left(Target, 1)
dq = Chr(34)
With Target.Validation
.Delete
.Add Type:=xlValidateCustom, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=left(A1,1)=" & dq & ch & dq
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
Application.EnableEvents = False
End Sub
并假设 G7 启动时未进行验证。输入值后,将在验证中使用第一个字母。