我有很多数据(数字)带有几个工作表中的标题,我试图将其归零。这在每列上完成,如下所示:获取列中第一行的值,并从列中的所有行中减去该值。
我把这段代码放在一起(可能不是最好的方法,但我是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函数并运行..但没有提供正确的输出但是我会继续工作!
答案 0 :(得分:1)
正如您对问题的评论所述,您缺少两个End If
语句。这是一种在输入代码时如何避免此类问题的简单方法:
每次启动IF _condition_ Then
语句时,请立即按两次Enter键并输入End If
行。然后上一行并输入IF语句中的内容。
相同的技术可以应用于具有开始和结束标记的所有语言和语句(For / Next等),可以是关键字,一对括号{} [] ()
或注释标记{ {1}}。