請問 EXCEL 怎麼樣跨工作表做搜尋?

2008-06-19 2:33 am
請問 EXCEL 怎麼樣跨工作表做搜尋?
舉例來說我的EXCEL檔案有 50個工作表
每一個工作表有100個名單(含名字電話住址等資料...)
我如何輸入一個人的名字他可以跟我說在哪張工作表的哪裡呢?
頭大中 ><

回答 (5)

2008-06-19 2:40 am
✔ 最佳答案
1. 點選編輯中那有有個搜尋
2. 出現對話窗後,點選裡面有個[選項(T)]
3. 再來,選取搜尋範圍
若是工作表 : 只會在單個Sheet中尋找
若是活頁薄 : 會在第一個Sheet找完後,再找第二個....

你要的應該是選活頁薄選項就可以做到了...
參考: I myself
2008-06-19 11:17 pm
不錯不錯 高手不少 手癢也來玩一下
Dim SHT As Worksheet
'
For Each SHT In Worksheets
' find chars
' if not find is nothing then msgbox SHT
Next
2008-06-19 6:25 pm
用自訂函數可以做到這一點,
先將下面的程式碼copy到 Excel VBA內, 插入模組才會生效 (細節若你不會, 再說)
Function search_name(ByVal location, ByVal name)
For i = 1 To Sheets.Count
st2 = Sheets(i).name & "!" & location
st = Application.Match(name, Sheets(i).Range(location), 0)
If IsError(st) Then
search_name = "我找不到"
Else
search_name = Sheets(i).name & "_" & location & "_" & st
Exit Function

End If

Next i
End Function

這個自訂函數的用法
Function search_name(ByVal location, ByVal name)
例如: 你的資料待查欄: 名字, 都放在各表的A:A欄中,
B1欄填入 =search_name("A:A",C1)
注意: "A:A" 的引號是必要的
而C1欄輸入你要查的名字
注意,若你這個公式放在A1, 會造成循環參照,
會回傳
Sheet3_A:A_5
上面表示 , 放在 sheet3的 A:A 的第5個欄位中
找不到時會傳回 "我找不到"


2008-06-19 10:27:38 補充:
函數中的
st2 = Sheets(i).name & "!" & location
那一行可以刪掉, 不用這一行,
我忘了刪
2008-06-19 5:20 am
Excel至少有六萬多列,2007更有100萬列,總共才5000筆資料一個工作表就可以了,卻用到50個工作表,這樣當然粉麻煩。解決之道還是整合到一個工作表,加一個欄位表示原來的分類,不然就太麻煩了。如果資料真的很多,還是用資料庫軟體Access處理才是王道。
2008-06-19 3:53 am
可以用VLOOKUP這一個函數

先建立一個工作表

然後在工作表中輸入這個函數

但我記得一個函數只能搜尋一個工作表

所以如果要多個的話就要建很多函數

是比較麻煩啦

但是可以試試看

這個函數不錯用
參考: 自己


收錄日期: 2021-04-16 16:15:04
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20080618000015KK08746

檢視 Wayback Machine 備份