※ 引述《coolair (無限循環)》之銘言:
: 軟體: excel
: 版本: 2003
: 以下是我剛剛練習寫的一段VBA有關加總的,有一個問題就是如果aaa = 0我寫在
: FOR迴圈之前(上一列)的話或是不寫aaa = 0,這段程式就會變成400*8=3200,如果寫在下面程式
: 這位置就會計算出正確數字,如果把aaa改為 aaa= 100的話,就會變成正確數字加400,
: 如果寫程aaa= 1的話就會變成正確數字加4,我想問說這400跟4出來的原理是什麼?
: 想好久完全想不出來為什麼會這樣?
: 謝謝
: ==========================================
: Sub 加總()
: Dim i As Integer
: Dim aaa As Integer
: Dim j As Integer
: For i = 2 To 9
: aaa = 0
: If Cells(i, 2).Value > 0 Then
: aaa = Cells(i, 2).Value * Cells(i, 1).Value
: End If
: j = j + aaa
: Next
: Range("B10") = j
: End Sub
: =====================================================
1.不加aaa=0時,會抓取最後一個aaa的數值
舉例來說:
A B C(aaa) D(j)
1
2 100 7 700 700
3 100 3 300 1000
4 100 2 200 1200
5 100 4 400 1600
6 100 0 400 2000
7 100 0 400 2400
8 100 0 400 2800
9 100 0 400 3200
10 3200
2.會多出400跟4是因為你大概有4個Cells(i,2)是<=0
因此j每次都會加上預設的aaa數值(aaa=1或100)
舉例來說:
如果aaa=1
A B C(aaa) D(j)
1
2 100 4 400 400
3 100 4 400 800
4 100 4 400 1200
5 100 4 400 1600
6 100 0 1 1601
7 100 0 1 1602
8 100 0 1 1603
9 100 0 1 1604
10 1604
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 175.180.135.78