各位先輩們,
小弟目前試著寫一個Execl 判斷式. 是將Sheet A 中的 K 欄位中 有Test 字眼的 挑選出來,並累加. 再將累加結果丟到Sheet B. 的 I 欄位
但是我寫出來 的總量總是0 並且會將 K欄位清空,為什麼?
範例:
Sheet A Sheet B
I J K L H I
1 HW Test 2012-1-1 2012-1-1 1
2 SW Open 2013-1-3 2012-5-10 2
3 HW Verfiy 2013-2-1
4 SW Test 2012-5-10
我的程式碼如下:
Dim data As String
data = test
For k = 1 To (row - 1)
If (limtxt <> "test") Then
Worksheets("Raw_Data").Cells(k + 2, 11).Value = str2
If (InStr(1, data, str2) >= 1) Then limnum = limnum + 1
'If InStr(UCase(E), UCase("Test")) Then '轉為大寫 : 所以大小寫沒區別
I = I + 1
End If
Next
Sheets("B").Range("I1") = I ' 的 I 欄位
' 並且會將 K欄位清空,為什麼? 沒看到程式碼,所以不曉的.
End Sub
複製代碼
作者: xaiver 時間: 2013-9-12 08:52
版大你好,
謝謝你的指導, 目前執行上是ok.
但是~, 我的想法不太一致..
我先說明一下,
Sheet A : Sheet B
I J K L H I J
1 HW OPEN 2012-1-5 2012-1-1 0
2 SW Test 2012-1-7 2012-1-7 1
3 HW Closed 2012-1-9 2012-1-14 1
4 SW OPEN 2012-1-3 2012-1-21 2
5 HW Test 2012-1-20 2012-1-28 2
If InStr(str2, "Limitation") Then limnum = limnum + 1
複製代碼
作者: xaiver 時間: 2013-9-12 15:39
謝謝版大,
其實我自己也稍微弄了一下,
For i = 1 To (row - 1)
itopen.Activate
A = ActiveCell.Offset(i, 0) ==> 抓取open date
itclose.Activate
b = ActiveCell.Offset(i, 0) ==> 抓取close date
itsev.Activate
c = ActiveCell.Offset(i, 0) ==>抓取Severity
itverify.Activate
d = ActiveCell.Offset(i, 0) ==>抓取verify date.
複製代碼
我個人覺得最大的問題是~ 我不知道怎麼去抓去 Status 的欄位並將它設定在字串在進行比對.
If Int(DateDiff("d", A, Astart)) >= 0 Then totalnum = totalnum + 1 ==>這邊是抓 verify date 和Open date與Astart date 做比對. (Astart date 是指向到cover page 中的 Test_Start Date)
If (Int(DateDiff("d", b, Astart)) >= 0) And (b > 1000 / 1 / 1) Then closenum = closenum + 1 ==>這邊是抓取verify date 和Closed date 與Astart date 做比對