You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VBA创建Yes/No下拉列表时出现Run Time Error 1004问题求助

VBA下拉列表报错:Run time error 1004 解决方法

错误原因

出现Run time error 1004: Select method of Range class failed的核心原因有两个:

  • Range.Select方法要求目标工作表必须处于激活状态,一旦Sheet1未被选中、被隐藏或保护,就会触发错误。
  • 依赖Selection对象的写法本身不稳定,工作表焦点变化会导致代码失效。

最优解决方案:避免使用Select/Selection

直接操作Range对象,跳过选中步骤,这是VBA编写的最佳实践,能彻底避免这类焦点相关错误:

Sub Drop_Down_List()
    Dim targetSheet As Worksheet
    Set targetSheet = ThisWorkbook.Worksheets("Sheet1")
    
    With targetSheet.Range("M2:N2851").Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="Yes,No"
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
    End With
End Sub

额外排查点

如果修改后仍报错,检查以下情况:

  • 确认工作簿中存在名为Sheet1的工作表,名称没有被修改(注意名称需完全匹配,大小写不影响)。
  • 若Sheet1被保护,需先取消保护再执行代码,执行完成后可重新保护:
    Sub Drop_Down_List_WithUnprotect()
        Dim targetSheet As Worksheet
        Set targetSheet = ThisWorkbook.Worksheets("Sheet1")
        
        ' 取消保护(有密码则替换为实际密码)
        If targetSheet.ProtectContents Then
            targetSheet.Unprotect Password:="yourpassword"
        End If
        
        With targetSheet.Range("M2:N2851").Validation
            .Delete
            .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="Yes,No"
            .IgnoreBlank = True
            .InCellDropdown = True
            .InputTitle = ""
            .ErrorTitle = ""
            .InputMessage = ""
            .ErrorMessage = ""
            .ShowInput = True
            .ShowError = True
        End With
        
        ' 重新保护工作表(可选)
        targetSheet.Protect Password:="yourpassword"
    End Sub
    
  • 确保运行代码时,目标单元格区域未处于手动编辑状态,也没有被其他窗口锁定。

内容的提问来源于stack exchange,提问作者Laura

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 17:05:33