前兩天,一個(gè)朋友問(wèn)我,有沒(méi)有辦法在excel里實(shí)現(xiàn)一個(gè)表單里是原始數(shù)據(jù),在另一個(gè)表單里顯示搜索到的行,搜索關(guān)鍵詞可用~分隔開(kāi),并把搜索歷史記錄下來(lái)?

  我想了想,用vba實(shí)現(xiàn)肯定可以啊,但是我又在想,有沒(méi)有可能excel自身的功能就可以實(shí)現(xiàn)了呢,但是后來(lái)沒(méi)有發(fā)現(xiàn)excel自帶這種功能。于是思考自己用vba給實(shí)現(xiàn)吧。

  于是我打開(kāi)我的電腦,結(jié)果發(fā)現(xiàn)我的office版本是wps,根本就沒(méi)有vba功能,網(wǎng)上說(shuō)的使用vba模塊安裝,但是始終沒(méi)有安裝成功。最后放棄了,自己下載一個(gè)office2013, 自帶vba功能。

  其實(shí)搜索功能實(shí)現(xiàn)思路相當(dāng)簡(jiǎn)單,無(wú)非就幾個(gè)循環(huán),把關(guān)鍵詞分割出來(lái)循環(huán),按行搜索循環(huán),按列搜索循環(huán),然后得到結(jié)果后,填充結(jié)果,對(duì)于歷史記錄,則需要得到最后一行的行號(hào)等。

附件已上傳,可點(diǎ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

關(guān)鍵功能代碼提示:

Sheets("原始數(shù)據(jù)").Range("A6").CurrentRegion        '獲取選擇區(qū)域數(shù)據(jù)searchArr = Split(searchStr, "~")                  ' 分割關(guān)鍵詞Range("A9:V" & Rows.Count).ClearContents        ' 清空原有數(shù)據(jù)Sheets("搜索記錄").Range("A65536").End(xlUp).Row    '獲取最大行的行號(hào)Sheets("搜索記錄").Range("A" & maxRow).Resize(m, columnCount) = brr    '數(shù)據(jù)填充

  實(shí)現(xiàn)代碼如下: 

萬(wàn)碼學(xué)堂,電腦培訓(xùn),計(jì)算機(jī)培訓(xùn),Java培訓(xùn),JavaEE開(kāi)發(fā)培訓(xùn),青島軟件培訓(xùn),軟件工程師培訓(xùn)

Sub 點(diǎn)擊搜索原始數(shù)據(jù)()    Dim i&, j&, m&, c%, t$, columnCount    Dim arr, brr(), searchArr()&n
        
		

網(wǎng)友評(píng)論