返回列表 上一主題 發帖

[原創] 以關鍵字篩選多個sheets的資料

[原創] 以關鍵字篩選多個sheets的資料

這是使用VBA的方法, 過幾天再做個用函數(不用VBA)的方法

sonny1.gif
search record by keyword - Sonny_VER1.rar (21.89 KB)
ss

回復  sunnyso

寫的不錯,構想也不錯

[1] 如果一開始沒有篩選關鍵字時,如何改為全部顯示

目前一列關 ...
ML089 發表於 2013-5-11 09:19


[1] 在 For Each sh In all_datasheets的Next 前加入, "Cells(dst_row, 1).Resize(src_rows, clmn1) = tmp_data" 即可

[2] 若要用OR 就要改動多一些代碼, 過兩天改一下放上來.
  1.     For Each sh In all_datasheets
  2. ......
  3. ......
  4.         Cells(dst_row, 1).Resize(src_rows, clmn1) = tmp_data
  5.     Next
複製代碼
ss

TOP

回復  sunnyso


    改成這樣好用多了

表頭我設好字型與顏色,只要一執行VBA後就會被清除? 有辦法不 ...
ML089 發表於 2013-5-11 16:19


1. 在AA欄設計表頭的字型與顏色等 (VBA Sheet)
2. 添加VBA OR篩選,在關鍵字前加#
3. 添加非VBA方法,當中沒有使用陣列和陣列函數(如small, min等),以及盡量避免使用IF函數(因此篩選後的資料順序是3個sheets交錯)。以免資料增加會令計算過長。

請指教。


search record by keyword - Sonny.rar (37.13 KB)
ss

TOP

回復 6# ML089

1. 設置表頭格式 (見下圖)

2. 很好的建議, 有時間再作修改

3. 由於某種特殊情況下, 不能使用有巨集的檔案, 所以才設計該方案, 放上來跟大家分享.

sonny2.gif
ss

TOP

回復  sunnyso
Private Sub Worksheet_Activate()
    ' ....
    ' ....
    Cells.ClearContent ...
c_c_lai 發表於 2013-5-12 19:54


Cells.ClearContent並不會觸動 worksheet_change
ss

TOP

本帖最後由 sunnyso 於 2013-5-12 22:34 編輯
Cells.ClearContent並不會觸動 worksheet_change
sunnyso 發表於 2013-5-12 22:25

回復 7# c_c_lai

對不起沒有寫完就按錯鍵
Cells.ClearContent並不會觸動 worksheet_change
用Cells(4,1)=“”, 來觸動更有效率.
謝謝.
ss

TOP

回復 9# GBKEE

感謝GBKEE大大的code, 效率更高
有一點小小的地方,就是如果datasheet(i) 的A欄最後一列假如因爲輸入錯誤為空白會出錯
如果把
    Cells(Rows.Count, "A").End(xlUp).Row
改爲
    UsedRange.Rows.Count
好像可以避免。不知道這樣改妥當嗎?
ss

TOP

        靜思自在 : 【為善競爭】人生要為善競爭,分秒必爭。
返回列表 上一主題