excel vba for循环不起作用

时间:2014-12-08 14:50:28

标签: excel vba loops

Sub change2()
    Dim area As Range
    Dim seconds As Range
    Dim Teller As Integer
    Dim number As Integer

    Set area = Range("M6:M79")

    number = 70

    For Teller = 1 To number
        If seconds.Cells(Teller) > 44 Then
            seconds.Cells(Teller).Font.Color = vbRed
        Else
            seconds.Cells(Teller).Font.Color = vbBlue
        End If
    Next
End Sub  

我收到错误

  

对象变量或未设置块变量。

我相信我没有正确处理细胞,我希望它在细胞中循环,如果该区域中的数字小于44,则转为红色,否则变为蓝色。该区域的值为1至70

2 个答案:

答案 0 :(得分:1)

您永远不会将seconds分配给任何内容。

它引用Nothing是导致运行时错误的原因。

答案 1 :(得分:1)

您的代码有很多错误:

  1. 当您将seconds放在Cells前面时,您正在引用工作表。您需要Dim seconds As Worksheet然后Set seconds = Sheets("Sheet Name")
  2. Cells()的正确语法是Cells(rowindex, colindex)您的循环只有一个数字,我假设是行数,因此您需要使用seconds.Cells(Teller, NUMBER OF COLUMN)
  3. 当您想要查找单元格中的内容时,语法为Cells().Value。因此,在定义seconds变量的哪个工作表后,您的完整语法将为seconds.Cells(Teller, NUMBER OF COLUMN).Value > 44
  4. 为什么定义area变量?在您的代码中似乎没有任何用处。