首页 > 解决方案 > 对象定义的数据验证错误。VBA 错误中的数据验证

问题描述

我在粗体线上收到应用程序或对象定义的错误。到底是怎么回事?其他一切似乎都在检查。代码搜索包含 2021 的单元格,然后检索单元格地址并将列字母推送到指定的变量。那挺好的。

Private Sub Validation2()
  
  Dim CLM As String
  Dim ws As Worksheet
  Dim cellvalue2 As Range
  Dim rng As Range
  Dim columnletterm As String
  Dim rvGHOCPD As Range
  Dim rGHOCPD As Range
  Dim rGHOCPD2 As Range
  Dim rv As Range

  Set rng = ThisWorkbook.Sheets("Monthly").Range("A1:DD1")
        

  For Each cellvalue2 In rng
  
      If cellvalue2.Value Like "*2021" Then
  
            With ThisWorkbook.Sheets("Monthly")
            
            CLM = cellvalue2.Address
            
            columnletterm = Split(CLM, "$")(1)
            
            End With                

        Set ws = ThisWorkbook.Sheets("Monthly")
        Set rvGHOCPD = ws.Range(columnletterm & "66", columnletterm & "81")
        Set rGHOCPD = ws.Range(columnletterm & "6").Offset(0, 1)
        Set rGHOCPD2 = ws.Range(columnletterm & "6").Offset(0, 2)            
        
        Set rv = ws.Range(rGHOCPD, rGHOCPD2)

        With rv.Validation
            .Delete
            **.Add Type:=xlValidateList, Formula1:="='" & ws.name & "'!" & rvGHOCPD.Address**
            .IgnoreBlank = True
            .InCellDropdown = True
            .InputTitle = ""
            .ErrorTitle = ""
            .InputMessage = ""
            .ErrorMessage = ""
            .ShowInput = True
            .ShowError = True
        End With
    End if
Next cellvalue2
end Sub

标签: excelvba

解决方案


推荐阅读