循环之后,variables不为空

我想要计算字段中的数据字符,所以我使用for循环来做到这一点。 这是我的代码的一个例子:

 Sub CharCount() Dim Counter As Long For Counter = 1 To 257 Step 1 Dim SumA As Variant Dim SumB As Variant Dim SumC As Variant SumA = 0 SumB = 0 SumC = 0 Dim j As Long For j = Counter To Counter * 257 Step 1 SumA = SumA + Len(Cells(j, 1)) SumB = SumB + Len(Cells(j, 2)) SumC = SumC + Len(Cells(j, 3)) Next j Range("E" & Counter) = SumA Range("F" & Counter) = SumB Range("G" & Counter) = SumC SumA = Null SumB = Null SumC = Null Next Counter End Sub 

正如你所看到的,我试图为Nullvariables总和,但它似乎并没有工作,并在循环的每一步后,这些variables只是堆栈先前的步骤值。 我怎样才能空variables?

我已经试过这些版本的代码:

1:

 Sub CharCount() Dim Counter As Long For Counter = 1 To 257 Step 1 SumA = 0 SumB = 0 SumC = 0 Dim j As Long For j = Counter To Counter * 257 Step 1 SumA = SumA + Len(Cells(j, 1)) SumB = SumB + Len(Cells(j, 2)) SumC = SumC + Len(Cells(j, 3)) Next j Range("E" & Counter) = SumA Range("F" & Counter) = SumB Range("G" & Counter) = SumC Next Counter End Sub 

2:

 Sub CharCount() Dim Counter As Long For Counter = 1 To 257 Step 1 SumA = 0 SumB = 0 SumC = 0 Dim j As Long For j = Counter To Counter * 257 Step 1 SumA = SumA + Len(Cells(j, 1)) SumB = SumB + Len(Cells(j, 2)) SumC = SumC + Len(Cells(j, 3)) Next j Range("E" & Counter) = SumA Range("F" & Counter) = SumB Range("G" & Counter) = SumC SumA = 0 SumB = 0 SumC = 0 Next Counter End Sub` 

第一个和第二个版本不适合我。

UPD。 这只是我在algorithm上的错误。 debugging后,我注意到所有variables成功循环后的循环。

…………..使用0而不是空值

几件事情:

  1. 您不应该在For循环中标注variables。 把这些移出第一个下面的循环。
  2. 如果SumASumBSumC总是整数,则应该将它们定义为LongInteger而不是SumC
  3. 您将在循环开始时将这些variables中的每一个重置为0,因此不需要SumA = NullSumB = NullSumC = Null行。