如EXCEL表格資料,表格中的161125、161130表示的是需完成的截止日期,我要實作功能的是統計后續161120前需完成的作業,并做出匯總。
我先把這些資料匯入了ProjData(i, j)陣列,這個沒問題。前面定義的ProjData(1 To 500, 1 To 50) As Variant,
再選擇出其中第5列中,即ProjData(i, 5)中日期大于161120的資料,匯出其行數,代碼如下:
Private Sub Command2_Click()
Dim SubTotal As Integer, PDRow(1 To 500, 1 To 500) As Variant
SubTotal = 0
For i = 1 To 26
If ProjData(i, 5) >= 161120 Then
SubTotal = SubTotal + 1
PDRow(SubTotal, 5) = i
Debug.Print PDRow(SubTotal, 5)
End If
Next i
End Sub
為何我 Debug.Print 出來的資料,對于標識完成或未完成的,也統計出來了?
uj5u.com熱心網友回復:
ProjData(i, 5) >= 161120你自己看吧
這個是數字比較
未完成是字串,你型別不對怎么比較?
If ProjData(i, 5) >= 161120 Then改成
If ProjData(i, 5) >= 161120 and instr(ProjData(i, 5),"完成")<0 Then
看看
uj5u.com熱心網友回復:
If ProjData(i, 5) >= 161120 And IsNumeric(ProjData(i, 5)) Then
uj5u.com熱心網友回復:
首先你的ProjData陣列定義的是Variant型別,而陣列中有文字或字符,因此,系統肯定默認為String型別的陣列變數了,你現在要比較第5列,而且需要和一個數字比較,因此要嗎就第5列轉換成數字:If Val(ProjData(i, 5)) >= 161120 Then
要嗎與字串進行比較:
If ProjData(i, 5) >= "161120“ Then
你難道沒有看到,不僅僅是標識完成或未完成的,而且小于161120的也存在。
uj5u.com熱心網友回復:
為什么不再加一列呢?完成后就不需要看時間了嗎?一般來說,應該有計劃完成時間,實際完成時間。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/79621.html
標籤:VB基礎類
