返回列表 上一主題 發帖

[發問] 搜尋代號後,尋找對應列數的儲存格

[發問] 搜尋代號後,尋找對應列數的儲存格

想請教版上前輩

如希望能在"尋找sheet"中,查詢工作表1中的任一個代號

查詢後:往右搜尋到有數字的儲存格,再去對應的第二列查所屬的編號

舉例:尋找GV8CX3Y00,往右搜尋會發現在N、R、S欄位有數字
對應到所屬的第二列為MM、QQ、RR

想請教前輩有沒有函數或VBA有辦法執行這樣的結果(抓出某代號第二列對應的編號)
因代號欄跟編號列會到上千項,手動查詢已經快無法負荷 感謝

函數唯一想到的只有IF,搜尋<>"",但抓到後要如何使之對應到第三列
是卡關的步驟

搜尋範例.rar (151.65 KB)

回復 7# hcm19522


    感謝大大提供函數的解法 感謝!

TOP

回復  abc9gad2016

請測試看看,謝謝。

Sub tt2()
Set xD = CreateObject("Scripting.Dictionary" ...
samwang 發表於 2021-1-23 10:31


S大不好意思,測試後發現會少列到一項,如圖
因對程式較不熟不清楚要如何修改 謝謝

TOP

本帖最後由 abc9gad2016 於 2021-1-25 16:34 編輯

回復 2# 軒云熊


   謝大大~測試成功
另外想請教若表格中多了一些無關的資訊,要改由F7:X24這個範圍尋找F6開始的對應值的話
應該要如何修改程式呢 謝謝

TOP

本帖最後由 abc9gad2016 於 2021-1-26 09:46 編輯

回復 13# 軒云熊

還是相當感謝大大分享~

TOP

回復  abc9gad2016

不好意思,少算1欄,請再測試看看,謝謝
  Sub tt2()
Set xD = CreateObject("Sc ...
samwang 發表於 2021-1-25 17:41



    感謝大大,昨晚用您的程式碼後稍做修改有成功弄成我要的樣子  謝謝
Sub 搜尋()
'
' 搜尋 巨集
' 搜尋
''
Worksheets("尋找").Range("B2:V2").ClearContents
Set xD = CreateObject("Scripting.Dictionary")
Sheets("尋找").[F6:X6] = ""
T = Sheets("尋找").[A2]
xD(T & "") = ""
Arr = Range([工作表1!X6], [工作表1!A65536].End(3))
For i = 2 To UBound(Arr)
    N = xD(Arr(i, 1) & ""): If N = 0 Then GoTo 99
    For J = 6 To 24
        If Arr(i, J) <> "" Then: M = M + 1: Arr(1, M) = Arr(1, J)
    Next
99: Next
If M > 0 Then Sheets("尋找").[B2].Resize(1, M) = Arr
End Sub

TOP

回復 12# samwang


    不好意思想再請教S大,如果依照這份表格我想搜尋範圍為J64:BR64
不知道我哪邊修改錯還請指點,無法執行出要的結果 謝謝

TOP

回復 18# samwang


感謝大大!測試修改成功,想請問這兩段修改比較多,可以請教是什麼意思嗎 謝謝
Sheets("成品").[L2].Resize(1, 200) = ""

For J = 10 To UBound(Arr, 2)

TOP

回復 17# 准提部林


    謝謝版主!

TOP

回復  abc9gad2016


    Sheets("成品").[L2].Resize(1, 200) = ""  --> 清除上一次查詢資料

For  ...
samwang 發表於 2021-1-26 17:39



   明白了,感謝S大

TOP

        靜思自在 : 【生命在呼吸間】佛陀說:「生命在呼吸間。」人無法管住自己的生命,更無法擋住死期,讓自己永住人間。既然生命去來這麼無常,我們更應該好好地愛惜它、利用它、充實它,讓這無常、寶貴的生命,散發它真善美的光輝,映照出生命真正的價值。
返回列表 上一主題