我想计算列中的数据字符,所以我使用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
正如您所看到的,我尝试使用Null
变量求和,但它似乎无法工作,并且在循环的每个步骤之后,这些变量只是堆叠前面步骤的值。我怎样才能使变量空?
我已经尝试过这些版本的代码:
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。这只是我的算法错误。在调试之后,我注意到在循环步骤之后所有变量都成功为空。
答案 0 :(得分:4)
..............使用 0 而不是 Null
答案 1 :(得分:2)
一些事情:
For
循环中标注变量。将它们移出第一个下面的循环。SumA
,SumB
和SumC
始终是整数,则应将其标注为Long
或Integer
,而不是变体。SumA = Null
,SumB = Null
和SumC = Null
行。