- 帖子
- 2035
- 主題
- 24
- 精華
- 0
- 積分
- 2031
- 點名
- 0
- 作業系統
- Win7
- 軟體版本
- Office2010
- 閱讀權限
- 100
- 性別
- 男
- 註冊時間
- 2012-3-22
- 最後登錄
- 2024-2-1
|
9#
發表於 2013-10-21 08:15
| 只看該作者
回復 luhpro
我嘗試了一下,我值隨便輸入,一樣會測試全部 似乎沒有判斷到IF
Public x, y
Sub ...
最高機密 發表於 2013-10-21 01:38 
終於了解你指的問題在哪裡,字串比較最好使用 StrComp() 涵示較宜。
我將 If 的判斷移至入口處,不然每一次迴圈都要無端演練 24 次 (For b = 9 To 32),
請全部貼至 Module1 或 原本之表單內 (可以將 Module1 內的 Public x,y 移除)
程式段我都已將它對位好了,以方便偵錯與閱覽。- Public x, y
- Sub trend()
- x = InputBox("輸入第一天")
- y = InputBox("輸入最後一天")
- If x = "" Or y = "" Then Exit Sub
-
- For a = 2 To 486
- Call aa(a)
- Next a
- End Sub
- Sub aa(ByVal a As Integer)
- If StrComp(Cells(a, 1), x, 1) >= 0 And StrComp(y, Cells(a, 1), 1) >= 0 Then
- For b = 9 To 32
- If Cells(a, b) >= Cells(a - 1, b) Then
- Cells(a, b + 25) = Cells(a + 2, 2) - Cells(a + 1, 2)
- Else
- Cells(a, b + 25) = Cells(a + 1, 2) - Cells(a + 2, 2)
- End If
- c = Cells(a, b + 25)
- D = D + c
- Cells(489, b + 25) = D
- e = Cells(1, b + 25)
- Cells(488, b + 25) = e
- Next
- c = 0
- Cells(1, b + 25) = Cells(1, b)
- End If
- End Sub
複製代碼 |
|