您好,我在VBA中运行此例程时发现错误。
Sub interest()
Dim newRange As Range
Dim rng As Range
Dim cel As Range
Dim ws As Worksheet
Range("D9").Select
Range(ActiveCell, ActiveCell.End(xlDown)).Select
For Each cel In rng.Cells
If cell.Value = "Cr" Then
cell.Offset(0, -1).Value = cell.Offset(0, -1).Value
Else
cell.Offset(0, -1).Value = cell.Offset(0, -1).Value * (-1)
Next
End Sub
答案 0 :(得分:3)
您在End If
Next cel
答案 1 :(得分:2)
您没有将任何内容归因于rng!您只选择了某些范围的电子表格。 代码可以修改如下:
...
Range("D9").Select
Range(ActiveCell, ActiveCell.End(xlDown)).Select
Set rng = Selection
...
答案 2 :(得分:0)
您收到编译错误,因为您没有使用 If
关闭End If
- 阻止(请参阅iDevlop的answer)。
在VBA中,您需要编写If
,如下所示:
If cell.Value = "Cr" Then
cell.Offset(0, -1).Value = cell.Offset(0, -1).Value
Else
cell.Offset(0, -1).Value = cell.Offset(0, -1).Value * (-1)
End If
只有这样,您才能使用For
完成Next
- 循环。
PS:正如Ehsan在his answer中提到的那样,您应该为rng
指定一些值,否则您将遇到rng.Cells
处的下一个错误。