添加数据验证时的运行时错误1004

时间:2017-08-07 08:11:05

标签: excel vba excel-vba

我目前正在尝试在受保护的文档中添加Dropdown-List。

我使用的代码是:

Private Sub AddDropDown_Click()
    ActiveSheet.Unprotect

    Dim currCell As Range
    Dim lastRow As Long
    With ActiveSheet
        lastRow = ActiveSheet.Cells(1048576, 1).End(xlUp).Row
    End With
    For Each currCell In Range("K4:K" & lastRow)
        With currCell.Validation
            .Delete
            .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=INDIREKT(J" & currCell.Row & ")"
            .IgnoreBlank = True
            .InCellDropdown = True
            .InputTitle = ""
            .ErrorTitle = ""
            .InputMessage = ""
            .ErrorMessage = ""
            .ShowInput = True
            .ShowError = True
        End With
    Next currCell
    ActiveSheet.Protect
End Sub

但是当我尝试运行代码时,它会在.Add被驱逐的行中抛出一个错误1004。

当我在调试时尝试对它们进行调整时,大多数参数会抛出相同的错误:

Debug Screenshot Validation

有没有人知道是什么原因引起的?

1 个答案:

答案 0 :(得分:0)

德国公式没问题。但请尝试按照这些要点进行调试:

  1. 删除错误继续下一步
  2. cell重命名为其他任何内容。例如。 myCellrngCell
  3. debug.print lastRow放在For Each cell In Range("K4:K" & lastRow)之前。
  4. Option Explicit置于顶部并尝试编译代码。