返回列表 上一主題 發帖

[發問] 關鍵字查詢可改為VBA方式按鈕查詢

[發問] 關鍵字查詢可改為VBA方式按鈕查詢

各位新進.老師.大家好
我在網路上學習關鍵字查詢用法
其缺點是公式裸露.容易誤觸消除.
是否可改用VBA寫法
按鈕式查詢
關鍵字vba.zip (17.26 KB)
敏而好學,不恥下問

謝謝.J大.S大2位指點
徹試後再跟2位報告
謝謝你們
敏而好學,不恥下問

TOP

回復 2# jcchiang
S大大 你好
感謝你所提供程式.經演練.會當機
故無法向你提出報告
可因我細說不全
再度向你提出說明如下

序號=IF(B4="","",TEXT(ROW()-3,"00"))
(序號)只是數字不特定意義.是讓使用人知道有幾個相同項編.項目.位置.所以可無可有.也可省列
因所需查詢繁多或是單一數.等查詢後出現資料再加以序號.不能全先填上數字.所本例是因前述程式所需先行輸入100格

項編(B3).項目(C3).位置(D3).則以C2格為查詢來源關鍵字
當符合工作表"C2"內關鍵字.則在工作表"B4"."C4"."D4".中呈現.多數關鍵字時.則往下排序

1)如工作表2"C2"打上"我"則在工作表3"中"D"."E"."F"作查詢比對.符合有"我"字則回傳至工作表2中"B"."C"."D"呈列完成
因在工作表3中所查詢"我".是在工作表3"E"欄找出.所以回傳至工作表2"C4"欄
另工作表2"B4""D4"則以工作表3中所查詢列中"D"."F"作完全對照比對回傳至工作表2"B4""D4"呈列

2)相同如在工作表2"C2"打上"A101".則在工作表3中"D"."E"."F"作查詢符合有A101.則回傳至工作表2中"B"."C"."D".呈列完成
因在工作表3中所查詢"A101".是在工作表3"D"欄找出.所以回傳至工作表2"B4"欄
另工作表2"C4""D4"則以工作表3中所查詢列中"E"."F"作完全對照比對回傳至工作表2"C4""D4"呈列

3)如同在工作表2"C2"打上"甲".則在工作表3中"D"."E"."F"作查詢符合有"甲".則回傳至工作表2中"B"."C"."D".呈列完成
因在工作表3中所查詢"甲".是在工作表3"F"欄找出.所以回傳至工作表2"D4"欄
另工作表2"B4""C4"則以工作表3中所查詢列中"D"."E"作完全對照比對回傳至工作表2"B4""C4"呈列

同樣假如工作表2"B4"經對照比對後乃然空字.則就是空字."C"."D"也是同樣

*關鍵是在工作表2"C2"去對照比對.工作表3"D"."E"."F"欄.後再回傳到工作表2"B4"."C4"."D4".並往下排序*
敏而好學,不恥下問

TOP

回復 3# samwang
s大大 你好
感謝你所提供程式.向你報告過程
經演練後.只能查詢1次且回傳會有間隔
例如在工作表"C2"中輸入"我"
所呈現是把工作表3完全覆製到工作表2中

可因我細說不全
再度向你提出說明如下

序號=IF(B4="","",TEXT(ROW()-3,"00"))
(序號)只是數字不特定意義.是讓使用人知道有幾個相同項編.項目.位置.所以可無可有.也可省列
因所需查詢繁多或是單一數.等查詢後出現資料再加以序號.不能全先填上數字.所本例是因前述程式所需先行輸入100格

項編(B3).項目(C3).位置(D3).則以C2格為查詢來源關鍵字
當符合工作表"C2"內關鍵字.則在工作表"B4"."C4"."D4".中呈現.多數關鍵字時.則往下排序

1)如工作表2"C2"打上"我"則在工作表3"中"D"."E"."F"作查詢比對.符合有"我"字則回傳至工作表2中"B"."C"."D"呈列完成
因在工作表3中所查詢"我".是在工作表3"E"欄找出.所以回傳至工作表2"C4"欄
另工作表2"B4""D4"則以工作表3中所查詢列中"D"."F"作完全對照比對回傳至工作表2"B4""D4"呈列

2)相同如在工作表2"C2"打上"A101".則在工作表3中"D"."E"."F"作查詢符合有A101.則回傳至工作表2中"B"."C"."D".呈列完成
因在工作表3中所查詢"A101".是在工作表3"D"欄找出.所以回傳至工作表2"B4"欄
另工作表2"C4""D4"則以工作表3中所查詢列中"E"."F"作完全對照比對回傳至工作表2"C4""D4"呈列

3)如同在工作表2"C2"打上"甲".則在工作表3中"D"."E"."F"作查詢符合有"甲".則回傳至工作表2中"B"."C"."D".呈列完成
因在工作表3中所查詢"甲".是在工作表3"F"欄找出.所以回傳至工作表2"D4"欄
另工作表2"B4""C4"則以工作表3中所查詢列中"D"."E"作完全對照比對回傳至工作表2"B4""C4"呈列

同樣假如工作表2"B4"經對照比對後乃然空字.則就是空字."C"."D"也是同樣

*關鍵是在工作表2"C2"去對照比對.工作表3"D"."E"."F"欄.後再回傳到工作表2"B4"."C4"."D4".並往下排序*
敏而好學,不恥下問

TOP

回復 2# jcchiang
抱歉
J大大
我把你名稱說錯.請你原諒
感謝你所提供程式.經演練會當機
敏而好學,不恥下問

TOP

回復 3# samwang
剛忘少傳檔案
現在補上
關鍵字vba修改.zip (26.81 KB)
敏而好學,不恥下問

TOP

本帖最後由 BV7BW 於 2021-3-27 16:23 編輯

回復 3# samwang
剛忘少傳檔案
現在補上
敏而好學,不恥下問

TOP

回復 10# samwang

謝謝s大
完全符合工作需求
我先理解一下
可有一些不懂地方想請s大大再幫注解
感謝s大   謝謝
敏而好學,不恥下問

TOP

回復 10# samwang
S大 大你好
回原操作工作表中.經測試後以可完全運作
有個問題是無法作保護工作表
卡在.Range(.[A4], .Cells(N + 3, 1)).NumberFormatLocal = "@"這裡
請S大在幫看看如何可用保護工作表操作
再請S大大可在程式後加注解
謝謝你
敏而好學,不恥下問

TOP

回復 10# samwang
S大大 你好
我已成功利用這2組程式
Worksheets("工作表2").Unprotect ("0123")
Sheets("工作表2").Protect ("0123")
去做保護動作
但我很想知道程式註解尤其是這段
.Range(.[A4], .Cells(N + 3, 1)).NumberFormatLocal = "@"
我再理解會比較慢.如有你註解可加速融通
再次謝謝 s大指導 謝謝
敏而好學,不恥下問

TOP

        靜思自在 : 口說好話、心想好意、身行好事。
返回列表 上一主題