我对EXCEL中的数据验证有疑问。我尝试将此验证添加到单元格范围:
With zakres.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=IF(ISBLANK($" & _
kolumna_litera(kol_Data_oceny_formalnej) _
& "3),FALSE,status_status_RK)"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = "Nieprawidłowy status!"
.InputMessage = ""
.ErrorMessage = "Wybierz poprawny status z listy rozwijanej!"
.ShowInput = True
.ShowError = True
End With
kolumna_litera-代表返回列字母(字符串)的函数; kol_Data_oceny_formalnej-代表列数(长); status_status_RK-代表具有值列表的命名范围;
问题是当单元格kolumna_litera&3为空时。然后,在Validation.Add行中发生错误1004。填充该单元格后,就不会出现错误。我不知道为什么会这样。有人可以向我解释吗?
答案 0 :(得分:0)
我想我找到了解决方案。问题出在公式中的FALSE
语句中。当单元格kolumna_litera(kol_Data_oceny_formalnej) & "3
为空时,Excel无法找到包含数据的列表-并且无法使用FALSE
语句。因此,我添加了一个包含一个空单元格的命名范围,并将其替换为该范围的名称(称为PUSTA)。现在的代码看起来像这样:
With zakres.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=IF(ISBLANK($" & kolumna_litera(kol_Data_wpływu_RK) & "3),PUSTA,status_status_RK)"
.IgnoreBlank = False
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = "Nieprawidłowy status!"
.InputMessage = ""
.ErrorMessage = "Wybierz poprawny status z listy rozwijanej! Lista ze statusami pojawi się jeśli wpisana została data z wpływem RK."
.ShowInput = True
.ShowError = True
End With
到目前为止,它仍然有效,希望这是问题所在。