- 帖子
- 835
- 主題
- 6
- 精華
- 0
- 積分
- 915
- 點名
- 0
- 作業系統
- Win 10,7
- 軟體版本
- 2019,2013,2003
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2010-5-3
- 最後登錄
- 2024-11-14
|
5#
發表於 2011-6-28 22:07
| 只看該作者
本帖最後由 luhpro 於 2011-6-28 22:09 編輯
回復 3# freeffly
那就變成從最末一列到第二列都要執行.
然後先判斷 12 月那欄是否有資料,
若有則執行原先程式中的那個片段,
若無則往左尋找最末兩筆資料,
若此兩筆資料其中一筆在 A 欄則不做任何計算, (因 A 攔不是我們要計算的資料)
否則就將此兩欄資料做相應的計算, 程式如下:- Sub nn()
- Dim iCol1%, iCol2%
- Dim lRows As Long, lRow As Long
-
- lRows = Cells(Rows.Count, 1).End(xlUp).Row
- For lRow = lRows To 2 Step -1
- If Cells(lRow, 13) <> 0 And Cells(lRow, 13) <> "" Then
- If Cells(lRow, 12) <> 0 And Cells(lRow, 12) <> "" Then
- Cells(lRow, 14) = (Cells(lRow, 13) - Cells(lRow, 12)) / Cells(lRow, 12)
- Else
- Cells(lRow, 14) = (Cells(lRow, 13) - Cells(lRow, Cells(lRow, 13).End(xlToLeft).Column)) / Cells(lRow, Cells(lRow, 12).End(xlToLeft).Column)
- End If
- Else
- iCol1 = Cells(lRow, 13).End(xlToLeft).Column
- iCol2 = Cells(lRow, iCol1).End(xlToLeft).Column
- If iCol1 <> 1 And iCol2 <> 1 Then
- Cells(lRow, 14) = (Cells(lRow, iCol1) - Cells(lRow, iCol2)) / Cells(lRow, iCol2)
- End If
- End If
- Next lRow
- End Sub
複製代碼 |
|