作者pipipipig (duck)
看板Office
標題[文件] VBA錄製 只取表身做資料整理
時間Tue Feb 12 08:26:51 2019
軟體:Excel VBA
遇到的問題
1. 每期資料的表頭欄位是固定的
2. 每期資料量都不同,所以列數會往下新增或減少
3. 資料都會有表尾總計數
現在是直接用VBA錄製動作
1. 用資料篩選,選擇表尾的表格顏色,然後整列刪除
2. 再解除資料篩選,繼續後續的資料整理
但發現這樣range還是只會記憶被刪除的那一列,而不是依每次篩選出來的表尾。
想請問各位大大,只想取表頭跟表尾中間的資料的話可以怎麼整理,感謝~~~~~
https://i.imgur.com/5HnAn92.jpg
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.73.125.20
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.73.125.20
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Office/M.1549931214.A.18D.html
1F:→ soyoso: 是指要確定表尾的列號嗎?(因為問題寫到列數會往下新增或02/12 08:34
2F:→ soyoso: 減少)02/12 08:35
3F:→ soyoso: 如果是的話,range.end、range.find,有連續資料的話,也02/12 08:35
4F:→ soyoso: 可配合工作表函數count或counta02/12 08:36
※ 編輯: pipipipig (42.73.196.130), 02/12/2019 09:07:47
5F:→ pipipipig: 不好意思文字太抽象,更新一下圖 02/12 09:10
6F:→ pipipipig: 就是每期列1固定,然後列261跟列262都是不要的,所以 02/12 09:12
7F:→ pipipipig: 會篩選顏色再刪除 02/12 09:12
8F:→ soyoso: 希望是取1:260的資料嗎,如以連結來看的話a1:j260? 02/12 09:16
9F:→ soyoso: 其他的如篩選顏色再刪除這方面會執行嗎?亦或不要執行而要 02/12 09:18
10F:→ soyoso: 取出a1:j260的資料? 02/12 09:18
11F:→ pipipipig: 取A2:A260,A2每期都固定,然後A260會往下延伸或是減 02/12 09:19
12F:→ pipipipig: 少列數 02/12 09:19
13F:→ pipipipig: 打錯,是J260不是A260,拍謝拍謝!! 02/12 09:20
14F:→ soyoso: 以連結來看j261和j262方面是不會鍵入資料嗎? 02/12 09:28
15F:→ soyoso: 如果不會的話 02/12 09:29
16F:→ soyoso: 以range("a2:j" & [j1048576].end(xlup).row) 可取得 02/12 09:29
17F:→ soyoso: 或是以range("a2",[j1048576].end(xlup)) 02/12 09:31
18F:→ soyoso: range.end方面以可以range.find,或以有連續資料的某欄以 02/12 09:37
19F:→ soyoso: 工作表函數count或counta來計數(有可能需減不計入的列,如 02/12 09:38
20F:→ soyoso: 表頭尾的列數) 02/12 09:39
21F:→ pipipipig: 表單後續會再就A2:J的中間下公式和插入欄整理分類,所 02/15 08:01
22F:→ pipipipig: 以目標不是刪除黃色列,而是為了只取A2到J下公式運算 02/15 08:01
23F:→ pipipipig: ,但每期都J的列數都會變。如果範圍這樣取是不是會取 02/15 08:01
24F:→ pipipipig: 到不要的黃色列? ("a2:j" & [j1048576].end(xlup).row 02/15 08:01
25F:→ pipipipig: ) 02/15 08:01
26F:→ pipipipig: 謝謝~~ 02/15 08:02
27F:→ soyoso: 這不一定,就要看黃色列的j欄(是否有鍵入資料,這也是我之 02/15 08:13
28F:→ soyoso: 前回文所詢問的問題),所提供的寫法也如回文假設,如果不 02/15 08:14
29F:→ soyoso: 會的話下的情況 02/15 08:15
30F:→ soyoso: 所以如果黃色的j欄是有鍵入資料(這裡的資料也保括公式)的 02/15 08:17
31F:→ soyoso: 話,就改以a:i欄內來判斷最後一筆有值的列號,但條件如下 02/15 08:18
32F:→ soyoso: 1.需黃色列第一列上方是有資料,2.黃色列該欄是沒有資料的 02/15 08:20
33F:→ soyoso: 以連結來看a:i第一列上方有資料,看起來是除了b和i沒有 02/15 08:22
34F:→ soyoso: 而2該欄沒有資料來看為d和e。就調整成這二個條件符合下的 02/15 08:23
35F:→ soyoso: 欄來取得最後一筆有值的列號 02/15 08:24
36F:→ soyoso: 實際也可能都沒有符合的條件,那就改以判斷任一欄最後一筆 02/15 08:26
37F:→ soyoso: 有值的列號(有可能包含黃色列,且有資料的條件也固定都會 02/15 08:27
38F:→ soyoso: 出現在黃色列內),該列號減出現於黃色列內的筆數 02/15 08:27
39F:→ pipipipig: 修改後成功取到值了!!!謝謝s大!! 02/18 20:57