VBA设置的Excel单元格验证设置了错误的数据范围

问题描述 投票:0回答:1

我有一个为范围内的单元格设置验证列表的程序。我终于让它工作了,将正确的范围设置为验证列表。 但是当我检查验证设置时,范围是不同的。我无法理解发生了什么以及为什么会发生这种情况。

下面是消息框,告诉我验证列表的范围:

但下面是已设置的验证列表范围:

我只是不明白为什么这个范围改为A2:A7而不是a1:a6。

这是该过程的代码:

Sub validatie()
Dim ws As Worksheet, ws1 As Worksheet
Set ws = ThisWorkbook.Worksheets("Hoofdbestand")
Set ws1 = ThisWorkbook.Worksheets("Verwijzingen")

aantalrijen2 = ws1.Range("A1", ws1.Range("A1").End(xlDown)).Cells.Count

With ws

aantalrijen = ws.Range("A1", ws.Range("A1").End(xlDown)).Cells.Count
    With .Range("B2:B" & aantalrijen).Validation
    .Delete
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Formula1:="=" & ws1.Name & "!" & "A1:A" & aantalrijen2
    MsgBox "=" & ws1.Name & "!" & "A1:A" & aantalrijen2
    End With
End With

End Sub
excel vba validation range
1个回答
0
投票

使用

$
:

锁定行引用
Formula1:="=" & ws1.Name & "!" & "A$1:A$" & aantalrijen2
© www.soinside.com 2019 - 2024. All rights reserved.