错误424对象需要

时间:2016-01-25 21:56:45

标签: excel vba excel-vba

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

它似乎总是需要对象。

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

1 个答案:

答案 0 :(得分:5)

我怀疑noiseval是以文字形式出现的。您的程序也可以从Select Case statement中获益,以替换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针对字符串和整数值进行测试;例如1不等于"1"

我不确定您的工作表参考;我从你的叙述中假设计算器是工作表.Name property