选中/取消选中复选框时的运行时错误1004

时间:2017-03-09 13:26:45

标签: vba excel-vba excel

我有一张有两张纸的工作簿,"分数" &安培; "资产&#34 ;.在"得分"上有Active X复选框。只在选中时显示MsgBox。 我有这个非常简单的代码来创建一个下拉列表"分数"使用"资产"。

的值
Sub testlist()

Dim scoresDatas As Range
Dim scoresList As Range

Set scoresDatas = ThisWorkbook.Worksheets("Assets").Range(ThisWorkbook.Worksheets("Assets").Cells(4, 1), ThisWorkbook.Worksheets("Assets").Cells(8, 1))
Set scoresList = ThisWorkbook.Worksheets("Scores").Range(ThisWorkbook.Worksheets("Scores").Cells(8, 4), ThisWorkbook.Worksheets("Scores").Cells(8, 4))

With scoresList.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Formula1:="='" & ThisWorkbook.Worksheets("Assets").name & "'!" & scoresDatas.Address
End With

scoresList.Value = 0
scoresList.HorizontalAlignment = xlCenter


End Sub

如果我打开工作簿,请不要触摸复选框,子工作,无论工作簿在哪张表上。但是,这是奇怪的部分,如果我选中/取消选中复选框,那么代码只有在工作表"资产"被激活了。如果我在"得分"我在.Add

上有一个运行时错误1004

如果有人知道原因,那就太好了!谢谢!

编辑:我没有替换"这本工作簿......"故意在我测试时避免引用问题 编辑2:此代码与复选框

无关

1 个答案:

答案 0 :(得分:1)

问题是如果选中复选框或任何其他控件,此行将失败

.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Formula1:="='" & ThisWorkbook.Worksheets("Assets").name & "'!" & scoresDatas.Address

因此,您需要确保选择了单元格而不是控件。例如。在上面一行之前运行Range("A1").Select

相反,请确保在单击复选框之后和运行sub。之前单击单元格。

相关问题