(已解決)如何用搜尋找資料後複製該位置以下的資料?
- 帖子
- 586
- 主題
- 123
- 精華
- 0
- 積分
- 763
- 點名
- 0
- 作業系統
- WINDOW7
- 軟體版本
- Office 2003
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2010-5-16
- 最後登錄
- 2017-3-14
 
|
回復 4# hugh0620
恩 謝謝回覆
我也還有很多要學 |
|
|
字典兩各字 還真難理解
|
|
|
|
|
- 帖子
- 559
- 主題
- 58
- 精華
- 0
- 積分
- 626
- 點名
- 0
- 作業系統
- win8
- 軟體版本
- office2013
- 閱讀權限
- 50
- 性別
- 男
- 來自
- TW
- 註冊時間
- 2010-11-22
- 最後登錄
- 2024-6-14
|
4#
發表於 2012-2-22 17:58
| 只看該作者
本帖最後由 hugh0620 於 2012-2-22 18:03 編輯
回復 hugh0620
幾各問題問依下
1.
If Target.Column = 3 And Target.Row = 1 T ...
freeffly 發表於 2012-2-22 17:36 
我僅是依我所知道的方式來撰寫~ 很多更深更簡化的~ 我也還在學習中~
第一個問題~
If Target.Column = 3 And Target.Row = 1 Then exit sub
這句是讓你設定在C1這個位置才去觸發程式~
如果每一個儲存格都是篩選的位置~ 這樣寫法就有所不同
Target.Address = "$C$1"
這個我有測試過~ 也可以這樣寫~
第二個問題
2.第8行為什麼要連D也處理?
因為有看到樓主的另外兩個DATA SHEET 前面各種幣值是兩個欄位資料~
加上日期與星期 共有四列欄位~
第三個問題
E.Index 的意思: E是活頁號碼~ 因你要存放資料的SHEET.index= 1
而程式在執行是每一個SHEET都會被納入篩選~
所以~ 用一個IF來判斷 避免存放資料的SHEET也被計算~ 有可能會造成錯誤~ |
|
|
學習才能提升自己
|
|
|
|
|
- 帖子
- 586
- 主題
- 123
- 精華
- 0
- 積分
- 763
- 點名
- 0
- 作業系統
- WINDOW7
- 軟體版本
- Office 2003
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2010-5-16
- 最後登錄
- 2017-3-14
 
|
3#
發表於 2012-2-22 17:36
| 只看該作者
回復 2# hugh0620
太厲害了
幾各問題問依下
1.
If Target.Column = 3 And Target.Row = 1 Then
這一句可以改成 Target.Address = "$C$1" 嗎
2.第8行為什麼要連D也處理?
3.
E.Index 這個的意思是? |
|
|
字典兩各字 還真難理解
|
|
|
|
|
- 帖子
- 559
- 主題
- 58
- 精華
- 0
- 積分
- 626
- 點名
- 0
- 作業系統
- win8
- 軟體版本
- office2013
- 閱讀權限
- 50
- 性別
- 男
- 來自
- TW
- 註冊時間
- 2010-11-22
- 最後登錄
- 2024-6-14
|
2#
發表於 2012-2-22 17:07
| 只看該作者
回復 1# freeffly
這個方式針對樓主你要彙整的sheet中C1的儲存格資料
去篩選你每一個月份的符合你C1資料的欄位,將該資料帶出來
提供給你參考試試看~
可以將C1的儲存格設定驗證的方式來挑選資料~ 會更合用~- Private Sub Worksheet_Change(ByVal Target As Range)
- Dim E As Worksheet
- If Target.Column = 3 And Target.Row = 1 Then
- N = 2
- A = Sheet1.Range("C1")
- Sheet1.Range("A2:D65536").ClearContents
- For Each E In Sheets
- If E.Index <> 1 Then
- Set F = E.Range("A1:IV1").Find(A, LookIn:=xlValues)
- If Not F Is Nothing Then
- K = E.Range("A1:IV1").Find(A).Column
- I = 4
- Do Until E.Cells(I, 1) = ""
- With E
- Sheet1.Cells(N, 1) = E.Cells(I, 1)
- Sheet1.Cells(N, 2) = E.Cells(I, 2)
- Sheet1.Cells(N, 3) = E.Cells(I, K)
- Sheet1.Cells(N, 4) = E.Cells(I, K).Offset(0, 1)
- N = N + 1
- End With
- I = I + 1
- Loop
- End If
- End If
- Next
- End If
- End Sub
複製代碼 |
|
|
學習才能提升自己
|
|
|
|
|