- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
回復 7# starry1314 - Option Explicit '強制宣告 防止變數Key錯字,造成錯字誤以為變數
- Sub Ex()
- Dim arr(), str As String, brr() As String, I As Integer
- Dim S As Variant, E As Integer
- str = Sheets("工作表1").[c2].Value '讀取禁忌
- 'Sheets("工作表1").[E8] = "" '將儲存格清空
- arr = Sheets("data").[a1].CurrentRegion.Rows(4).Value '讀取資料變數-列
- For I = 2 To UBound(arr, 2) Step 2 '資料變數 以2欄做為一個數據
- S = Split(str, ",") '將禁忌:以,區隔多條件
- ReDim brr(0 To UBound(S))
- 'ReDim 陳述式 在程序層次中用來重新配置動態陣列變數的儲存空間。
- '數組內元素的上限值 '如 5-10 等同UBound=10 ,LBound=5 下限值
- For E = 0 To UBound(S) '依序導入數組內元素
- If InStr(arr(1, I), S(E)) Then brr(E) = "禁忌"
- Next
- S = Join(brr, "")
- 'Join 函數 傳回一個字串 , 該字串是透過連結某個陣列中的多個子字串而建立的
- If S = "" Then
- Sheets("工作表1").[E8] = arr(1, I - 1)
- Exit For
- End If
- Next
- With Sheets("工作表1").[E8]
- If .Value = "" Then
- MsgBox "查不到結果"
- Else
- MsgBox "最後有 " & .Value & "為:" & arr(1, I)
- End If
- End With
- End Sub
-
複製代碼 |
|