暱稱: 阿佐 頭銜: 上班無聊打怪去
中學生
- 帖子
- 108
- 主題
- 1
- 精華
- 0
- 積分
- 113
- 點名
- 0
- 作業系統
- Win 10
- 軟體版本
- Office 2016
- 閱讀權限
- 20
- 性別
- 男
- 來自
- 臺灣
- 註冊時間
- 2017-9-7
- 最後登錄
- 2019-2-27
 
|
7#
發表於 2018-8-13 17:10
| 只看該作者
回復 6# s7659109
我VBA是承續之前的Code,
請參考
0801.zip (18.47 KB)
- Sub NumberCode()
- Dim i%, Str$, ArrStr$
- i = 2
- ArrStr = "" '清空已記錄到的條件
- Do Until Range("C" & i) = ""
- '將A欄、B欄、D欄合併為一個字串作為條件
- Str = Range("A" & i) & Range("B" & i)
- '若該條件未記錄過,則記錄之。
- If InStr("," & ArrStr & ",", "," & Str & ",") = 0 Then ArrStr = ArrStr & "," & Str
- '撈出Str在陣列ArrStr中的索引值
- Range("F" & i) = "No. " & UBound(Split(Split(ArrStr, Str)(0), ","))
- i = i + 1
- Loop
- ConsistentJudgment ArrStr, UBound(Split(ArrStr, ","))
- End Sub
- Sub ConsistentJudgment(ArrStr, R%)
- Dim i%, Str$, N%, StrMeno$
- ReDim ArrMemo(R) As String
- '紀錄Memo資料種類
- i = 2
- Do Until Range("C" & i) = ""
- Str = Range("A" & i) & Range("B" & i)
- StrMeno = Range("D" & i)
- N = UBound(Split(Split(ArrStr, Str)(0), ","))
- If InStr("," & ArrMemo(N) & ",", "," & StrMeno$ & ",") = 0 Then ArrMemo(N) = ArrMemo(N) & "," & StrMeno
- i = i + 1
- Loop
- '回饋判定結果
- i = 2
- Do Until Range("C" & i) = ""
- Str = Range("A" & i) & Range("B" & i)
- StrMeno = Range("D" & i)
- N = UBound(Split(Split(ArrStr, Str)(0), ","))
- If UBound(Split(ArrMemo(N), ",")) > 1 Then Range("G" & i) = "x"
- i = i + 1
- Loop
- End Sub
複製代碼 |
|