2016-10-04 248 views
0

我目前正在處理大量的合同列表。每個列表都在每個季度的單獨工作表中,並且需要保持這種狀態。例如:2007_Quarter12007_Quarter2等我有10年的數據,所以40個季度的報告工作表。Excel VBA - 循環計數單元值大於/小於特定值

現在我需要按照指定的順序來編寫一個VBA程序,將做到以下幾點,:

  1. 在每個季度報告工作,通過含有合同值的列運行;然後
  2. 計算0到10,000之間的所有值;那麼
  3. 計算10,001到25,000之間的所有值;等等

  4. 然後,當範圍內沒有更多的合同值(這將在不同的工作表中變化)時,轉到下一個工作表並重復該過程。

所有結果應該在工作表中(我們稱之爲工作表(「報告」))在一個表,其中的行是值的時間間隔(如0至$ 10,000)和列是宿舍(如2007年第一季度被退回,2007年第二季度等)。

我的問題的一個特別的方面是,出於實際的原因,我寧願在另一個工作表(「變量」)中包含的表中設置控制時間間隔的最小值和最大值,例如,I 'd範圍C4下的所有最小值和範圍D4下的所有最大值。

對於每個合約價值,一個「如果」條件應該是這樣的:

If ContractVal > Worksheets("Variables").Range("C4").Value And 
If ContractVal < Worksheets("Variables").Range("D4").Value Then ... 

到目前爲止我有在有效編碼這個沒有成功。我懷疑有些循環會起作用,但我無法找到實現它的方法。環路會做:

在2007_Quarter1 WS: 對於從A4每個小區降低到結束時,計數值包含範圍(「C4」)值和範圍(「D4」)之間值

然後。對於從A4到下一個結束的每個單元格,計數值包含在範圍(「C5」),值和範圍(「D5」)之間。值

...等等,然後重複執行2007_Quarter2,2007_Quarter3和等等。

我需要救援!提前致謝!

+5

工作表公式COUNTIF不夠嗎? –

回答

0

如果您可以手動準備生成的矩陣(列中的行和季度間隔),您可以編寫一個宏來讀取正確的文件並計算矩陣中每個單元的正確範圍內的合約。

如果你想自動構建矩陣,你應該告訴宏的年份範圍。然後,您可以編寫一個循環來讀取範圍,併爲每個範圍編寫一個循環,以正確的順序讀取每個文件。