前兩天,一個朋友問我,有沒有辦法在excel里實現一個表單里是原始數據,在另一個表單里顯示搜索到的行,搜索關鍵詞可用~分隔開,并把搜索歷史記錄下來?
我想了想,用vba實現肯定可以啊,但是我又在想,有沒有可能excel自身的功能就可以實現了呢,但是后來沒有發(fā)現excel自帶這種功能。于是思考自己用vba給實現吧。
于是我打開我的電腦,結果發(fā)現我的office版本是wps,根本就沒有vba功能,網上說的使用vba模塊安裝,但是始終沒有安裝成功。最后放棄了,自己下載一個office2013, 自帶vba功能。
其實搜索功能實現思路相當簡單,無非就幾個循環(huán),把關鍵詞分割出來循環(huán),按行搜索循環(huán),按列搜索循環(huán),然后得到結果后,填充結果,對于歷史記錄,則需要得到最后一行的行號等。
附件已上傳,可點擊去下載: 跨表單搜索示例-2003.zip
http://files.cnblogs.com/files/yougewe/%E8%B7%A8%E8%A1%A8%E5%8D%95%E6%90%9C%E7%B4%A2%E7%A4%BA%E4%BE%8B-2003.zip
關鍵功能代碼提示:
Sheets("原始數據").Range("A6").CurrentRegion '獲取選擇區(qū)域數據searchArr = Split(searchStr, "~") ' 分割關鍵詞Range("A9:V" & Rows.Count).ClearContents ' 清空原有數據Sheets("搜索記錄").Range("A65536").End(xlUp).Row '獲取最大行的行號Sheets("搜索記錄").Range("A" & maxRow).Resize(m, columnCount) = brr '數據填充
實現代碼如下:
Sub 點擊搜索原始數據() Dim i&, j&, m&, c%, t$, columnCount Dim arr, brr(), searchArr()&n