看板 Office 關於我們 聯絡資訊
※ 引述《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