(已解決)如何用搜尋找資料後複製該位置以下的資料?
- 帖子
- 586
- 主題
- 123
- 精華
- 0
- 積分
- 763
- 點名
- 0
- 作業系統
- WINDOW7
- 軟體版本
- Office 2003
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2010-5-16
- 最後登錄
- 2017-3-14
 
|
(已解決)如何用搜尋找資料後複製該位置以下的資料?
本帖最後由 freeffly 於 2012-3-6 13:43 編輯
我想要用搜尋的方式
如附檔
如果搜尋到第一各工作表[C1]的資料
就複製各個工作表第4列之後的資料
因為每各工作表排的位置有點不相同
所以目前我想到的方式是用搜尋
但是用vba我不知道該怎麼去抓
ssdsa.rar (18.08 KB)
|
|
字典兩各字 還真難理解
|
|
|
|
|
- 帖子
- 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
複製代碼 |
|
學習才能提升自己
|
|
|
|
|
- 帖子
- 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
|
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
 
|
6#
發表於 2012-2-23 08:36
| 只看該作者
回復 4# hugh0620
恩 謝謝回覆
我也還有很多要學 |
|
字典兩各字 還真難理解
|
|
|
|
|
- 帖子
- 586
- 主題
- 123
- 精華
- 0
- 積分
- 763
- 點名
- 0
- 作業系統
- WINDOW7
- 軟體版本
- Office 2003
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2010-5-16
- 最後登錄
- 2017-3-14
 
|
7#
發表於 2012-2-23 08:41
| 只看該作者
回復 5# Hsieh
感謝版主
這個方式更簡潔
速度感覺更快些
不過有一些不懂
消化後再提問 |
|
字典兩各字 還真難理解
|
|
|
|
|
- 帖子
- 586
- 主題
- 123
- 精華
- 0
- 積分
- 763
- 點名
- 0
- 作業系統
- WINDOW7
- 軟體版本
- Office 2003
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2010-5-16
- 最後登錄
- 2017-3-14
 
|
8#
發表於 2012-2-23 09:09
| 只看該作者
回復 5# Hsieh
仔細看過後板主的方式與另外一位大大方式不同(處理方式)
如果說想要向另一位大大那樣抓兩欄要怎麼改
Application.EnableEvents = False 在這裡的用處是? 要讓什麼事件不發生嗎?
sh = Format(a, "emm") emm有特殊規則嗎 看到版主使用才知道有這種方式 |
|
字典兩各字 還真難理解
|
|
|
|
|
- 帖子
- 586
- 主題
- 123
- 精華
- 0
- 積分
- 763
- 點名
- 0
- 作業系統
- WINDOW7
- 軟體版本
- Office 2003
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2010-5-16
- 最後登錄
- 2017-3-14
 
|
9#
發表於 2012-2-23 09:29
| 只看該作者
回復 4# hugh0620
剛試了一下 這裡還可以改這樣
Sheet1.Cells(N, 1).Resize(, 4) = Array( _
E.Cells(i, 1), _
E.Cells(i, 2), _
E.Cells(i, K), _
E.Cells(i, K).Offset(0, 1)) |
|
字典兩各字 還真難理解
|
|
|
|
|
- 帖子
- 559
- 主題
- 58
- 精華
- 0
- 積分
- 626
- 點名
- 0
- 作業系統
- win8
- 軟體版本
- office2013
- 閱讀權限
- 50
- 性別
- 男
- 來自
- TW
- 註冊時間
- 2010-11-22
- 最後登錄
- 2024-6-14
|
10#
發表於 2012-2-23 09:31
| 只看該作者
回復 7# freeffly
H大大是一個高手~ 我不懂的問題~ 拋出來~ 各版大或大大們都能指導解惑唷~
H大大的程式 要有一定的條件才能執行~
執行時要注意SHEET1的日期資料~
若你的日期資料不包含在DATA中的日期~ 就會產生錯誤
舉例~ 你提供的資料是9~10月~ 若你SHEET1的日期在94/9/1以前或94/10/31以後的日期~
就會產生錯誤~
所以~ 要設一個防錯的程式碼~ 不然你執行的時候沒注意就話掛在那邊唷~ |
|
學習才能提升自己
|
|
|
|
|