作者: 黑道明 時間: 2017-2-14 11:00 標題: EXCEL 檢查 抽取 資料
本帖最後由 黑道明 於 2017-2-14 11:23 編輯
已經有一張由A至?? , 1-X000既表
要抽出指定整行 row , 去另一張表或頁 ( 格式一樣 )
已知係 row 1 2 3 9 99 100 ......... 500 999 , 成幾百行要 CTRL+X+V
有咩方法可以快D做到?
或者係 係原本張大DATA 入面 將指定 格仔變色都可以
件事係咁的
首先有張EXCEL A 放左入公司個系統 , 跟手佢嘔左張excel list B 出黎 row 2 4 9 .... 999 , XXXX項 , 要人手debug
咁我就要將 有事果D抽出黎 人手改野 , 之後整一張剩係得 果幾百行改好DATA既 EXCEL Debug
另外再出 多一張 其他冇事果幾千行DATA 既 EXCEL fine
作者: mdws2002 時間: 2017-2-14 11:37
要抽嘅ROW係隨機,都無乜規律嘅。
咁就真係要一行一行咁去Copy啦。
作者: 黑道明 時間: 2017-2-14 11:47
vba 得唔得??
ROW 有表可以做對比
我再人手 將VBA .XLSM SAVE AS .XLSX
但係我唔識VBA , 有C兄整左我會大約睇明.....但係唔識寫.....
作者: kkeennken 時間: 2017-2-14 13:42
用formula
https://h2.hkepc.com/forum/attachment.php?aid=1960109&k=845935597b0d37e93a11c498e5903788&t=1782371048&sid=upzC3YQSpa

作者: 黑道明 時間: 2017-2-14 15:16
本帖最後由 黑道明 於 2017-2-14 15:18 編輯
原本個DATA長這樣 , 再多50項 , 2000條
之後個系統出左張表X我呢樣 , 幾百條
我要抽出有問題既去另一份EXCEL
再人手睇下呢幾百隻錯咩(呢個時候有獨立FILE , 就可以分比同事一齊做)
另一方面要將冇事既抽出黎 , 去另一份冇問題既EXCEL
姐係前後會出4份EXCEL , 用唔到TAB 因為本身個DATA已經有好多TAB......
問題係 有冇方法可以抽出黎....唔洗一個個COPY 同 DELETE........
https://h2.hkepc.com/forum/attachment.php?aid=1960123&k=ed06048f683ff5bbf4e3c3553ae6fc06&t=1782371048&sid=upzC3YQSpa

https://h2.hkepc.com/forum/attachment.php?aid=1960124&k=a3d6662c33c92bb0c3943ea085fb83b8&t=1782371048&sid=upzC3YQSpa

https://h2.hkepc.com/forum/attachment.php?aid=1960125&k=a1b1d1c00d70b24daf97844f50748849&t=1782371048&sid=upzC3YQSpa

https://h2.hkepc.com/forum/attachment.php?aid=1960126&k=bf211d83743abe10291ec3f9c02aa4fe&t=1782371048&sid=upzC3YQSpa

作者: 狂蜂一號 時間: 2017-2-14 22:13
For your reference
Option Explicit
DefInt A-Z
'Identify your Workbooks and Worksheets
'Make sure no formula in relevant Cells
'Check result!!!
Sub Test()
Dim BookBRowNo As Long, BugRowNo As Long
'ThisWorkbook can be Workbooks("YourBooks.xlsx")...
For BookBRowNo = 4 To 2 Step -1 '4 is last RowNo in "BookB"
BugRowNo = ThisWorkbook.Worksheets("BookB").Cells(BookBRowNo, 1)
ThisWorkbook.Worksheets("BookA").Rows(BugRowNo).Copy ThisWorkbook.Worksheets("Debug").Rows(BookBRowNo)
ThisWorkbook.Worksheets("BookA").Rows(BugRowNo).Delete 'then "BookA" will be "Fine"
Next BookBRowNo
End Sub
作者: 黑道明 時間: 2017-2-15 09:32
本帖最後由 黑道明 於 2017-2-15 10:00 編輯
回覆 6# 狂蜂一號
唔該C兄!!!!!! , 不過有幾個問題
我當最終會有4份xlsx , Data.xlsx , Buglist.xlsx , Datadebug.xlsx , DataExceptbug.xlsx
呢個VBA係邊份xlsx到做? 定係開第二個.xlsm , 做完再一次過複製過去Datadebug.xlsx?
BookA , BookB 其實係代表緊邊份.xlsx , 定係sheet黎?
耐冇接觸VBA , D因果關係睇落有D亂
係General到做定係
做個 Active Controls - Command Button ?
- Private Sub CommandButton1_Click()
- End Sub
- Private Sub Worksheet_SelectionChange(ByVal Target As Range)
- End Sub
- Option Explicit
- DefInt A-Z
- 'Identify your Workbooks and Worksheets
- 'Make sure no formula in relevant Cells
- 'Check result!!!
- Sub Test()
- Dim BookBRowNo As Long, BugRowNo As Long
- 'ThisWorkbook can be Workbooks("YourBooks.xlsx")...
- For BookBRowNo = 4 To 2 Step -1 '4 is last RowNo in "BookB"
- BugRowNo = ThisWorkbook.Worksheets("BookB").Cells(BookBRowNo, 1)
- ThisWorkbook.Worksheets("BookA").Rows(BugRowNo).Copy ThisWorkbook.Worksheets("Debug").Rows(BookBRowNo)
- ThisWorkbook.Worksheets("BookA").Rows(BugRowNo).Delete 'then "BookA" will be "Fine"
- Next BookBRowNo
- End Sub
作者: happy_gemini 時間: 2017-2-15 11:03
看看是否可以這樣操作?
1. 將buglist加入Data作一個獨立worksheet.
2. 在Data最前端加2 columns
3. 在新加第一個column (e.g. column A), 加入每行的row index. (可以"= Row()" 或手動輸入1, 2, 3,...再直接填到尾.
4. 在新加第二個column (e.g. column B), 用vlookup分辨出要debug同冇問題的數據. "=IF(ISNA(VLOOKUP(A1,budlist!A:B,2,0)),"Correct",VLOOKUP(A1,budlist!A:B,2,0))"
5. 用Sort & Filter分隔開debug和correct的rows, 分別抄到兩個新worksheets.
作者: 狂蜂一號 時間: 2017-2-15 16:14
回覆 7# 黑道明
"BookA", "BookB" and "Debug" 係sheet黎:
"BookA" = "首先有張EXCEL A" / "原本個DATA長這樣 , 再多50項 , 2000條"
"BookB" = "嘔左張excel list B" / "之後個系統出左張表X我呢樣 , 幾百條"
"Debug" = "有事果D抽出黎...EXCEL Debug" / "我要抽出有問題既去另一份EXCEL"
after running: "BookA" >>> "EXCEL fine" / "另一方面要將冇事既抽出黎 , 去另一份冇問題既EXCEL"
作者: 狂蜂一號 時間: 2017-2-15 16:40
本帖最後由 狂蜂一號 於 2017-2-15 16:44 編輯
如果唔想改 code, 可以 移動或複製 "BookA", "BookB" 去同一個新 Workbook, 插入一張新 Worksheet - "Debug"; 插入一張模組, "係General到做".
Sub Test() 會根據 "BookB" 提供嘅 "row", 將有事嗰啲由 "BookA" 複製去 "Debug", 然後就在 "BookA" 將它刪除。
(*** "BookA" 會被修改 ***)


