我有一个工作表,在指定的范围内应该是验证列表。此列表是来自另一个工作表的标记(列A,从第2行到最后一个非空行)。但它不起作用,我无法弄清楚原因。
我的代码:
&<>
并且在范围rGeneralFTERange中不会出现验证列表。但是当我改变这一部分时:
Set wsResourcesProjects = Sheets("ResourcesProjects")
Set wsProjects = Sheets("Projects")
With wsProjects.rGeneralFTERange.Offset(0, 3).Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=ResourcesProjects!" & wsResourcesProjects.Cells(1, 1).CurrentRegion.Offset(1, 0).Address
.IgnoreBlank = True
.InCellDropdown = True
.ShowInput = True
.ShowError = True
End With
on
wsResourcesProjects.Cells(1, 1).CurrentRegion.Offset(1, 0).Address
那么它是有效的。但这对我来说并不好,因为“A”栏中的数据是动态的。
答案 0 :(得分:1)
在您的代码中Formula1:="=ResourcesProjects!"
exclimation !符号可能已经创建了问题,希望您已经创建了命名范围:)
FYR named ranges
Sub validation()
'Select your range
Range("A1").Select
With Selection.validation
.Delete
'Month_Val is the namedrange name
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=Month_Val"
End With
End Sub