动态验证列表 - 来自其他工作表的数据

时间:2015-12-04 12:13:01

标签: vba excel-vba excel

我有一个工作表,在指定的范围内应该是验证列表。此列表是来自另一个工作表的标记(列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”栏中的数据是动态的。

1 个答案:

答案 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