返回列表 上一主題 發帖

[發問] ELSEIF與DO WHILE巢狀迴圈來判斷加總

[發問] 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



經過執行之後,他只會執行累加所有顏色重量的程式,後面的語法就會完全無效。

煩請各位大大解答,感恩的心~~謝謝

謝謝各位大師的解答,除了解決問題之外,我還學到了很多,真的非常感謝。

TOP

        靜思自在 : 【為善競爭】人生要為善競爭,分秒必爭。
返回列表 上一主題