下一个没有For错误?

时间:2016-05-02 02:44:21

标签: vba excel-vba excel

我有很多数据(数字)带有几个工作表中的标题,我试图将其归零。这在每列上完成,如下所示:获取列中第一行的值,并从列中的所有行中减去该值。

我把这段代码放在一起(可能不是最好的方法,但我是VBA的新手:))

Dim ws As Worksheet
Dim Header As Range, ColData As Range
Dim firstrow As Long
Dim cell As Range, cell2 As Range

Set ws = ActiveSheet
Set Header = ws.Range("B5").End(xlToRight)

For Each cell In Header
    If IsEmpty(cell) Then
    Else
        firstrow = cell.Offset(2).Value
        If Not IsEmpty(cell.Offset(2)) Then
            Set ColData = ws.Range(cell.Offset(2), cell.Offset(2).End(xlDown))
            For Each cell2 In ColData
                cell2.Value = cell2.Value - firstrow
            Next cell2
 Next cell

我收到了没有For的错误?我错过了什么吗?原谅我,如果它有些愚蠢,我已经多次检查过,似乎无法发现它!

谢谢!

编辑:修正了IsEmpty函数并运行..但没有提供正确的输出但是我会继续工作!

1 个答案:

答案 0 :(得分:1)

正如您对问题的评论所述,您缺少两个End If语句。这是一种在输入代码时如何避免此类问题的简单方法:

每次启动IF _condition_ Then语句时,请立即按两次Enter键并输入End If行。然后上一行并输入IF语句中的内容。

相同的技术可以应用于具有开始和结束标记的所有语言和语句(For / Next等),可以是关键字,一对括号{} [] ()或注释标记{ {1}}。