我不明白为什么每次在VBA中都会发生对象必需错误?

我不明白为什么每次在VBA中都会发生对象必需错误?,vba,Vba,我正在做一个VBA项目,以确定一家公司的PE是否过高。我对vba相对缺乏经验,但是,我找不到我的代码有任何错误,为什么excel总是返回一个对象必需的错误?如果有人能帮助我,谢谢 Dim i As Long, pe As Long Dim result As String For i = 4 To 10 pe = Sheet1.Range("C" & i).Value If pe >= 85 Then result = "high"

我正在做一个VBA项目,以确定一家公司的PE是否过高。我对vba相对缺乏经验,但是,我找不到我的代码有任何错误,为什么excel总是返回一个对象必需的错误?如果有人能帮助我,谢谢

Dim i As Long, pe As Long
Dim result As String

For i = 4 To 10
pe = Sheet1.Range("C" & i).Value
        If pe >= 85 Then
            result = "high"
        ElseIf pe >= 75 Then
            result = "mid"
        ElseIf pe >= 55 Then
            result = "low"
        ElseIf pe >= 40 Then
            result = "very low"
        Else
            result = "not in range"
        End If

        Sheet1.Range("D" & i).Value = result
Next

End Sub

即使是错误的堆栈交换,您也需要在开始时添加一个声明,将Sheet1变暗为Sheet或类似,我认为这是在抱怨它在运行时不知道Sheet1是什么。

我认为您的堆栈交换错误!您的代码在我的Excel 2016中运行良好,这是因为Sheet1是一个没有任何内容的变量,实际上您甚至还没有声明它。您必须声明变量Sheet1,并将其设置为某个变量,可能是来自ActiveWorkbook对象的Sheets集合的工作表。