Public x, y
Sub trend()
x = InputBox("輸入第一天")
y = InputBox("輸入最後一天")
For a = 2 To 486
Call aa(a)
Next a
End Sub
Sub aa(ByVal a As Integer)
For b = 9 To 32
If x > Cells(a, 1) And Cells(a, 1) <= y Then
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
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 Sub作者: c_c_lai 時間: 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