命名范围中的Excel VBA下拉列表

命名范围中的Excel VBA下拉列表,vba,excel,drop-down-menu,Vba,Excel,Drop Down Menu,类似问题: 我有这个代码,我想在其中创建一个下拉列表,比如在B1:B2范围内,列表依赖于A1:A2中给出的一些命名范围 问题是这给了我错误 运行时错误1004'应用程序定义或对象定义错误 当我单击debug时,下面的一行高亮显示 .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="=INDIRECT(INDIRECT(""RC[-1]"",0))"

类似问题:

我有这个代码,我想在其中创建一个下拉列表,比如在B1:B2范围内,列表依赖于A1:A2中给出的一些命名范围

问题是这给了我错误

运行时错误1004'应用程序定义或对象定义错误

当我单击debug时,下面的一行高亮显示

   .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
    xlBetween, Formula1:="=INDIRECT(INDIRECT(""RC[-1]"",0))"
代码实际上已经运行了好几次,我不知道为什么。但是,只有第一个单元格A1从命名范围中获得一个具有正确值的下拉列表,而单元格A2是一个没有值的下拉列表,所有命名范围都有效,我已经检查过了

编辑 我想我找到了问题的一部分,尽管这并不能解释我在运行代码时遇到的问题。请原谅我的Excel的非英语版本,但您可能会认识到这是公式中的名称管理器。代码基本上与我从宏记录器中获得的代码完全相同,所以这应该可以工作,不是吗?我的一些命名范围具有值{…}。为什么会这样?命名范围引用了正确的单元格,但单元格值为空

编辑2


当单元格分开时,似乎无法获取为命名区域选择的单元格的值。这太糟糕了。。。这有什么好办法吗?

这段代码对我来说运行得很好。尽管我更改为在with语句中指定工作表。您确定电子表格中的名称与命名范围相同吗?第三个代码框debug high LIGHT代码的末尾包含一个星号;您可能有打字错误?删除了asterix。与SheetsSheet1.RangeB1:B2.Validation一起使用对我来说没有任何作用不幸的是。。。这是真的weird@Flephal:也许你从我的编辑中认识到了这个问题?@Flephal:你到底是如何修改代码的?当我用宏记录器生成代码时,而不是在执行代码时,这个代码是如何工作的,有人能解释一下吗?
   .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
    xlBetween, Formula1:="=INDIRECT(INDIRECT(""RC[-1]"",0))"