所需的错误424对象

计算器是Excel文件中的一个选项卡。 nnoise是由具有下拉列表的单元格分配的macros。 下拉列表的选项是1,2,3,4和5.根据下拉列表的select,我希望给另一个单元赋予一定的值。

它始终显示对象所需。

Sub nnoise() noiseval = Calculator.Range("E15") With Calculator If noiseval = 1 Then .Range("F15") = 0 ElseIf noiseval = 2 Then .Range("F15") = 30 ElseIf noiseval = 3 Then .Range("F15") = 50 ElseIf noiseval = 4 Then .Range("F15") = 70 ElseIf noiseval = 5 Then .Range("F15") = 90 End If End With End Sub 

我怀疑noiseval是作为文本进来的。 您的程序也可以从Select Case语句中获益,以取代If ... ElseIf ... End If

 Sub nnoise() Dim noiseVal As Variant With Worksheets("Calculator") noiseVal = .Range("E15").Value2 Select Case noiseVal Case 1, "1" .Range("F15") = 0 Case 2, "2" .Range("F15") = 30 Case 3, "3" .Range("F15") = 50 Case 4, "4" .Range("F15") = 70 Case 5, "5" .Range("F15") = 90 Case Else .Range("F15") = vbNullString End Select End With End Sub 

通过堆叠比较值, noiseVal针对string值和整数值进行testing; 例如1不等于"1"

我不确定你的工作表参考; 我从你的叙述中推断出Calculator是Worksheet .Name属性 。