- 帖子
- 8
- 主題
- 4
- 精華
- 0
- 積分
- 12
- 點名
- 0
- 作業系統
- XP
- 軟體版本
- 2003
- 閱讀權限
- 10
- 註冊時間
- 2010-7-22
- 最後登錄
- 2014-4-17
|
[發問] ELSEIF與DO WHILE巢狀迴圈來判斷加總
這程式主要是想要讓IF來判斷顏色之後,然後來加總所對應的重量。
我的迴圈是當欄位(2,1)不是空格,便會開始執行迴圈,
然後用IF判斷如果顏色為"紅"跟"紅紅",將會累加重量至欄位(3,5)的紅色
如果顏色是"綠"或是備註有"大"就會累加至欄位(3,6)的綠色
如果顏色是"藍"就會累加至欄位(3,7)的藍色
如果顏色是"黃"就會累加至欄位(3,8)的黃色
如果新舊的欄位有"新"則會累加至欄位(3,9)所有顏色的重量
經過我寫的語法執行後發現,只要某一列的條件有符合,其數值有被累加過之後,我後面寫的另一條件即使符合,居然就無法在往上累加了。
我的語法如下所示:
Sub aa()
Dim x, sum1, sum2, sum3, sum4, sum5, sum6 As Long
x = 2
sum1 = 0
sum2 = 0
sum3 = 0
sum4 = 0
sum5 = 0
Do While Cells(x, 1) <> ""
If Cells(x, 4) = "新" Then
sum5 = sum5 + Cells(x, 2).Value
ElseIf Cells(x, 1) = "紅" Then
sum1 = sum1 + Cells(x, 2).Value
ElseIf Cells(x, 1) = "紅紅" Then
sum1 = sum1 + Cells(x, 2).Value
ElseIf Cells(x, 1) = "綠" Then
sum2 = sum2 + Cells(x, 2).Value
ElseIf Cells(x, 3) = "大" Then
sum2 = sum2 + Cells(x, 2).Value
ElseIf Cells(x, 3) = "藍" Then
sum3 = sum3 + Cells(x, 2).Value
ElseIf Cells(x, 3) = "黃" Then
sum4 = sum4 + Cells(x, 2).Value
Else
sum1 = sum1 + 0
sum2 = sum2 + 0
sum3 = sum3 + 0
sum4 = sum4 + 0
sum5 = sum5 + 0
End If
x = x + 1
Loop
Cells(3, 5) = sum1
Cells(3, 6) = sum2
Cells(3, 7) = sum3
Cells(3, 8) = sum4
Cells(3, 9) = sum5
End Sub
經過執行之後,他只會執行累加所有顏色重量的程式,後面的語法就會完全無效。
煩請各位大大解答,感恩的心~~謝謝 |
|