Excel 使用范围公式时缺少下拉列表值

Excel 使用范围公式时缺少下拉列表值,excel,vba,macos,Excel,Vba,Macos,我有下面的VBA功能。这是为了在给定单元格中创建下拉列表 Public Sub CORE_SetValidation(ByRef Rng As Range, ByVal Value As String) With Rng.Validation Call .Delete If Value <> "" Then Call .Add(Type:=xlValidateList, AlertStyle:=xlValidAlertS

我有下面的VBA功能。这是为了在给定单元格中创建下拉列表

Public Sub CORE_SetValidation(ByRef Rng As Range, ByVal Value As String)
    With Rng.Validation
        Call .Delete
        If Value <> "" Then
            Call .Add(Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Formula1:=Value)
            .ErrorMessage = "Please select a value from drop-down list"
            .ErrorTitle = "Value Error"
            .IgnoreBlank = True
            .InCellDropdown = True
            .InputMessage = ""
            .InputTitle = ""
            .ShowInput = True
            .ShowError = True
        End If
    End With
End Sub
但是,当我使用范围公式传递值时,它不起作用

dictkeystring = "=PrjList!A2:A6"
CORE_SetValidation(Sourcews.Columns(AllocationSheet_Prj_COLUMN).EntireColumn, dictkeystring)
问题是,对于每个单元格,我缺少一个值;在第一列中缺少一个值,第二个单元格缺少2个值,第三个单元格缺少3个值,。。。在某个地方我丢失了所有的值,我得到的是空的下拉列表


我不知道为什么会发生此错误,我可以解决此范围内的公式吗

"=PrjList!$A$2:$A$6"
如果没有
$
,则定义的范围地址是“相对的”,因此它将与范围中的单元格一起“滑动”。i、 e.第二行的验证将是
A3:A7
,依此类推


地址中的
$
指示Excel修复验证范围,因为它是一个绝对地址。

非常感谢,解释得很好
"=PrjList!$A$2:$A$6"