標題:
[發問]
篩選資料問題
[打印本頁]
作者:
blue2263
時間:
2016-7-1 06:58
標題:
篩選資料問題
請教高手大大
如何,將A工作表代碼清單,做為條件,在B 工作表篩選資料
[attach]24596[/attach]
作者:
joey0415
時間:
2016-7-11 22:53
回復
1#
blue2263
自己錄一下篩選就好!
例如:查2002中鋼,
如果查到2002(a欄),請將右方第三欄的(D欄)鋼鐵工業選取
以鋼鐵工業為篩選要素,將所選到的資料複製到你的要工作表後,再將第一張表取消篩選即可
作者:
c_c_lai
時間:
2016-7-12 12:29
回復
1#
blue2263
可參考
Autofilter 方法
作者:
c_c_lai
時間:
2016-7-14 10:53
回復
1#
blue2263
工作表篩選資料, 試試看!
以產業別、以及市場別等為範例來篩選資料。
[attach]24664[/attach]
[attach]24665[/attach]
[attach]24666[/attach]
作者:
blue2263
時間:
2016-7-17 19:37
感謝C大,不過我想我提問問題,不夠詳細,G大誤解我的需求,
以下再詳述我的問題
比如我在(對手同產業工作表),代碼欄,篩選出1101相關的對手同產業家數(如下圖)
[attach]24683[/attach]
然後用上圖所篩選出的同業清單(共7家),在(選股報表工作表),一樣用篩選的方式找出這7家資料
之前也有用錄製巨集的方法如下程式碼,但不知如何才能將,(對手同產業工作表)找出的同業代碼資料,與下面程式碼結合
ActiveSheet.Range("$A$2:$XFC$1602").AutoFilter Field:=1, Criteria1:=Array( _
"1101", "1102", "1108", "1110"), Operator:=xlFilterValues
作者:
blue2263
時間:
2016-7-17 19:48
PS:因我對手同產業,有再細分,所以無法直接用(選股報表工作表)的產業別找出相同結果
作者:
blue2263
時間:
2016-7-27 21:12
不知是否有解?還請大大幫忙,感恩謝謝!!
作者:
c_c_lai
時間:
2016-7-28 09:30
回復
7#
blue2263
說真的,你從#5 ~ #7 間的描述,
我看的 "濛颯颯",你可否從頭到尾
將需求用圖示以及說明描述一次?
[attach]24761[/attach]
作者:
blue2263
時間:
2016-7-28 21:13
本帖最後由 blue2263 於 2016-7-28 21:15 編輯
C大你好,不好意思,我表逹的不好,描述不夠清楚,我再描述清楚一點,謝謝
以下以操作步驟說明
步驟1,
對手同產業工作表
,(A欄)篩選1101資料->篩選結果,共7家同業資料(B欄)
[attach]24767[/attach]
步驟2.在
選股報表工作表
,用篩選的方式,以上圖7家篩選結果清單(B欄)做為條件,找出此7家廠商(如下圖)
[attach]24768[/attach]
步驟1
為手動操作,
步驟2
希望用VBA的方式執行
不好意思,描述不夠清楚,浪費C大時間,下次提問問題會改進!!
謝謝!! C大熱心幫忙
作者:
c_c_lai
時間:
2016-7-29 08:38
回復
9#
blue2263
這是不是你要的結果?
[attach]24770[/attach]
[attach]24771[/attach]
[attach]24772[/attach]
作者:
c_c_lai
時間:
2016-7-29 09:37
回復
9#
blue2263
Sub 選股與同產業()
Dim 代碼別 As String, 產業別 As Range
代碼別 = InputBox("請輸入您欲篩選之股票代碼 (Stock No.)" & vbCrLf & "(例如:1101、1203、1234、或 1439 等) ", "基本資料") ' 彈出輸入視窗
If 代碼別 = "" Then Exit Sub
With Sheets("對手同產業")
.AutoFilterMode = False ' 取消自動篩選 (回復原始篩選前內容)
Set 產業別 = Sheets("對手同產業").[B:B].Find(代碼別, , , 1)
If Not 產業別 Is Nothing Then
.Range("A1").AutoFilter FIELD:=6, Criteria1:=產業別.Offset(, 4).Value ' 自動篩選
End If
End With
With Sheets("選股報表")
.AutoFilterMode = False ' 取消自動篩選 (回復原始篩選前內容)
Set 產業別 = Sheets("選股報表").[A:A].Find(代碼別, , , 1)
If Not 產業別 Is Nothing Then
.Range("A1").AutoFilter FIELD:=4, Criteria1:=產業別.Offset(, 3).Value ' 自動篩選
End If
End With
End Sub
複製代碼
作者:
blue2263
時間:
2016-7-29 20:26
C大你好
我希望是用代碼來做篩選條件,同下圖
原因是,對手同產業工作表,資料有再細分,細分的意思是,
除了同產業,還有產品相關度較高的,會編到同組代碼
因此用
產業別
做為篩選條件,兩個工作表結果會不相同
不知是否有方法逹到
謝謝C大熱心幫忙!!
[attach]24776[/attach]
作者:
c_c_lai
時間:
2016-7-30 10:14
回復
12#
blue2263
你希望的結果
是這樣麼?
[attach]24779[/attach]
作者:
blue2263
時間:
2016-8-1 21:07
回復
13#
c_c_lai
回復c大,以水泥工業的產業別來看,會是我要的相同結果沒錯,但其它產業不會是相同結果,
請c大看下圖
以1301代碼篩選只有8家,如果以產業別篩選有288家
[attach]24807[/attach]
[attach]24808[/attach]
原因是,對手同產業工作表,資料有再細分,細分的意思是,
除了同產業,還有產品相關度較高的,會編到同組代碼
因此用產業別做為篩選條件,兩個工作表結果會不相同
作者:
c_c_lai
時間:
2016-8-2 09:22
回復
14#
blue2263
你的意思是否如此?
[attach]24813[/attach]
[attach]24814[/attach]
作者:
blue2263
時間:
2016-8-2 19:19
回復
15#
c_c_lai
回復C大
[attach]24818[/attach]
[attach]24819[/attach]
作者:
blue2263
時間:
2016-8-8 20:16
回復
15#
c_c_lai
謝謝!C大幫忙
作者:
GBKEE
時間:
2016-8-14 08:10
回復
9#
blue2263
步驟1為手動操作,步驟2希望用VBA的方式執行
步驟2的程式碼
Option Explicit
Sub Ex()
Dim i As Integer, Msg As String, D As Object, E As Variant, Rng As Range
With Sheets("對手同產業")
If .AutoFilterMode Then '有使用自動篩選(AutoFilter)
'If .AutoFilterMode = True Then '有使用自動篩選(AutoFilter)
With .AutoFilter.Filters(1)
'** Filter物件的集合,代表自動篩選範圍中的所有篩選
'** On 屬性 如果指定的篩選已開啟,則為 True。唯讀 Boolean
If .On Then Msg = Mid(.Criteria1, 2) '**確定[代碼]篩選有指定條件
End With
End If
If Msg = "" Then
MsgBox .Name & " 代碼 沒指定 !!"
Else
Set D = CreateObject("SCRIPTING.DICTIONARY") '**字典物件
With .Range("B:B").SpecialCells(xlCellTypeVisible) '** 資料篩選後可見的儲存格
For Each E In .Cells
If E = "" Then Exit For '** 沒有資料終止迴圈
If E.Row > 1 Then D(E.Value) = "" '** 字典物件中加入 代碼
Next
End With
With Sheets("選股報表")
If .AutoFilterMode Then .AutoFilterMode = False '**有使用自動篩選(AutoFilter)
.Cells.EntireRow.Hidden = False '** 取消所有列的隱藏
Set Rng = .Rows("3:" & .Range("A1").End(xlDown).Row) '** 設定資料的範圍
Rng.EntireRow.Hidden = True '** 範圍的列隱藏
For Each E In Rng.Rows ' ** 範圍列 的迴圈
If D.exists(E.Cells(1, 1).Value) Then '**字典物件的key值有 代碼
E.EntireRow.Hidden = False '** 取消列的隱藏
D.Remove (E.Cells(1, 1).Value) '**Remove 方法 把成員從 Collection 物件中移除。
If D.Count = 0 Then Exit For ' '** Count 物件中成員的總數
End If
Next
End With
MsgBox Msg & " 選股報表 Ok"
End If
End With
End Sub
複製代碼
作者:
blue2263
時間:
2016-8-16 21:30
回復
18#
GBKEE
測試ok :D
萬分感謝!!G大幫忙解答
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)