- 帖子
- 835
- 主題
- 6
- 精華
- 0
- 積分
- 915
- 點名
- 0
- 作業系統
- Win 10,7
- 軟體版本
- 2019,2013,2003
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2010-5-3
- 最後登錄
- 2024-11-14
|
2#
發表於 2014-12-21 22:50
| 只看該作者
各位高手好,我想請教一下
我有一份關鍵字清單並已分類好
現在有一份課程名稱要來查詢出關鍵字
目前可查出 ...
hasrhgni 發表於 2014-12-19 16:51 
我猜你的結果是要像 Sheet4 中所顯示的情形,
程式修改如下:- Dim iCol%
- Dim strSA$, strC$, strA$, strca$, Dilimiter$ '定義字串變數,用來承接範圍名稱
- strSA = "class_name" '待搜尋字串的範圍名稱(橘色範圍)
- strC = "keyword" '欲在(紅色範圍)中搜尋的關鍵字(藍色範圍)
- strA = "Answer" '用來承接答案的範圍名稱(紅色範圍)
- strca = "catalog"
- Dilimiter = "," '用來做為區隔符號的變數,方便後續文書處理用
- For i = 1 To Range(strSA).Rows.Count 'Range("範圍名稱")就是一個工作表中的"範圍名稱"所代表的範圍
- For j = 1 To Range(strC).Rows.Count '.Rows.Count 為總資料行數
- If InStr(Range(strSA).Cells(i + lIns, 1), Range(strC).Cells(j, 1).Value) <> 0 Then
- With Range(strA).Cells(i, 1)
- iCol = .Offset(, Columns.Count - 2).End(xlToLeft).Column - 1
- .Offset(, iCol) = Range(strC).Cells(j, 1).Offset(0, -1)
- End With
- End If
- Next
- Next
複製代碼 如果你要的是 B 欄放全部鍵值,
但以 , 做區隔的話就改成底下這樣:- Dim strSA$, strC$, strA$, strca$, Dilimiter$ '定義字串變數,用來承接範圍名稱
- strSA = "class_name" '待搜尋字串的範圍名稱(橘色範圍)
- strC = "keyword" '欲在(紅色範圍)中搜尋的關鍵字(藍色範圍)
- strA = "Answer" '用來承接答案的範圍名稱(紅色範圍)
- strca = "catalog"
- Dilimiter = "," '用來做為區隔符號的變數,方便後續文書處理用
-
- For i = 1 To Range(strSA).Rows.Count 'Range("範圍名稱")就是一個工作表中的"範圍名稱"所代表的範圍
- Range(strA).Cells(i, 1) = ""
- For j = 1 To Range(strC).Rows.Count '.Rows.Count 為總資料行數
- If InStr(Range(strSA).Cells(i + lIns, 1), Range(strC).Cells(j, 1).Value) <> 0 Then
- With Range(strA).Cells(i, 1)
- If .Value <> "" Then
- .Value = .Value & Dilimiter & Range(strC).Cells(j, 1).Offset(0, -1)
- Else
- .Value = Range(strC).Cells(j, 1).Offset(0, -1)
- End If
- End With
- End If
- Next
- Next
複製代碼 |
|