2013-08-27 238 views
2

首先,我想指出我是VBA excel編程的初學者。 我似乎無法知道如何在以下問題的循環代碼的循環: 我的Excel列d具有以下信息: D2:12, D3:12, D4:5VBA excel - 在循環中循環

並試圖自動化列E如下: E1到E12將是D2中的信息, E13到E25將是D3中的信息。等等......達到一定的確定閾值。

我目前已經編寫如下:

Sub salairemensuelle() 

Dim xrow As Integer, xcol As interger, n As Integer, nbrdecolonnedemois As Integer 

xrow = 2 

xcol = 4 

Do Until Cells(xrow, xcol).Value >= 25 'threshold of 25 
     n = Range("D65536").End(xlUp).Row 'finding row of D column 
     For nbrdecolonnedemois = 1 To n 

End Sub 

我似乎被困在這裏了,因爲我不知道如何循環的第一d列,然後關閉兩個循環。

有人可以看看。謝謝

+0

+1對於屬於StackOverflow的Excel問題:)但我不認爲此代碼可以編譯... –

回答

0

我不認爲你需要兩個循環。雖然你的循環都沒有關閉。

您關閉DoLoop,(或Loop While等),如,:

Do Until i >= 10 

    i = i+1 

Loop 

您創建一個For循環與Next語句,如:

For i = 1 to 10 
    MsgBox i 
Next 

在你情況下,我認爲你可以只使用For ... Next循環與Exit For聲明當閾值條件獲得時:

Sub salairemensuelle() 

Dim xrow As Integer, xcol As interger, n As Integer, nbrdecolonnedemois As Integer 

xrow = 2 
xcol = 4 

     n = Range("D65536").End(xlUp).Row 'finding row of D column 
     For nbrdecolonnedemois = 1 To n 
      'The next line terminates the loop if threshold of 25 is met: 
      If Cells(xrow, xcol).Value >= 25 Then 
       Exit For 
      Else: 
       '### The rest of your code operates inside this ELSE block 
      End If 

     Next 
End Sub 
+0

以下行:if cells(xrow,xcol).value> = 25 then,only,would,would檢查D列中的任何行是否超過閾值。你會如何重寫它,以考慮列D的AKA的閾值爲25,最後的信息計爲ac4將是D4,因爲12 + 12 + 1將是25. – user2719997

+0

*只會檢查是否有D列中的行超過閾值*否:僅檢查** **單元格'D2'。我假設這個單元格包含某種總和公式,並且其值隨着列D的其餘部分被填充而改變。 –