作者: 黑道明 時間: 2018-10-11 19:34 標題: 工作表,依條件分拆成多個Excel檔 ( 成功解決多謝C兄 )
本帖最後由 黑道明 於 2018-10-24 11:53 編輯
上次問完都未有時間試...又有新野問......
借用一下人地篇文~~
把一個Excel檔案中的第1個工作表,依條件分拆成多個Excel檔,並自動存檔
https://www.camdemy.com/media/11993
想做既野中曬~~
1張SHEET , 入面有 N項資料 , 根據其中一個直行(已經排好次序) , 將直行相同既整個橫行抽出
複製去另一張EXCEL , 然後用返果格個名儲存. 就好似佢咁.
問題係 佢係用 數字+1 做NEXT , 而我係得英文代碼, 例如 AX , BO , CC , XZ 等等
而且對照既直行唔係第一行 我可以先整理左有咩CODE 去SHEET 2 ,
例如 將直行AX,AX,AX,AX,AX,BO,BO,BO,CC,CC,CC , 變做AX , BO , CC , 放係SHEET2
橫行資料由 A去到DM...... 英文代碼有50種.........由2去到60,000個.........
人手C&P...有排都搞唔掂.....
請問背後個VBA可以加D咩或點做?
有諗過學上LINK , 我自己先用VLOOKUP 對照英文代碼 加一例指定數字 , 然後加一上去
但係都想問下有冇另一個既方法去做?
因為已經60000*DM.....我驚再開多幾行....公司機WIN7 64BIT... 但係4GB RAM.....會HAND機
作者: myricky 時間: 2018-10-11 20:11
提示: 作者被禁止或刪除 內容自動屏蔽
作者: 黑道明 時間: 2018-10-11 22:15
同條LINK一樣
只係901唔係 A果行 , 係I果行 , 但係 A至Z都要~
同 901 係 特定英文字 AS KJ GU 之類 , 而唔係數字~~
作者: 黑道明 時間: 2018-10-12 09:45
本帖最後由 黑道明 於 2018-10-12 09:52 編輯
圖文詳細要做的事
首先我有一張叫 "Master list test.xlsx" 既Excel,內容如下圖。
由A去到DM ,2去到60000,
然後用D,項目4果欄,做分拆(複製)去新既EXCEL,佢係英文字碼,唔係數字,一共有50類。
同時將已經做好公式既 "Report"都成張複製過去新Excel。
完成之後,會變左以下3張EXCEL。
分好唔同.xlsx,各自入面既SHEET,因為Report已經做好公式既關係,SHEET既名都要係一樣SHEET1。
Report 來自之前的成張複製。
最後Folder入面會變成咁。50個唔同既.xlsx同1張Master List。
今朝再睇........因為要改唔用名........用數字代替不太可行.........
https://h0.hkepc.com/forum/attachment.php?aid=2086505&k=cfdec4631c8fca7dea7da71dcf441861&t=1781822969&sid=eM7JhRVa4r

https://h0.hkepc.com/forum/attachment.php?aid=2086506&k=a11f9ba6e9834423e896c4e9d2fa0973&t=1781822969&sid=eM7JhRVa4r

https://h0.hkepc.com/forum/attachment.php?aid=2086507&k=df78231b79eeb7ff7c2f4ab8d3ec3715&t=1781822969&sid=eM7JhRVa4r

https://h0.hkepc.com/forum/attachment.php?aid=2086508&k=7c9ef712385737d6c202edddea7354cc&t=1781822969&sid=eM7JhRVa4r

https://h0.hkepc.com/forum/attachment.php?aid=2086511&k=aa35e76e662a4ec496557bb1017fa930&t=1781822969&sid=eM7JhRVa4r

https://h0.hkepc.com/forum/attachment.php?aid=2086512&k=55cb26fdd4e94a9b38abff351bcc9874&t=1781822969&sid=eM7JhRVa4r

https://h0.hkepc.com/forum/attachment.php?aid=2086513&k=68c0c191d2a067e7963804c16dc83d28&t=1781822969&sid=eM7JhRVa4r

作者: myricky 時間: 2018-10-12 10:36
提示: 作者被禁止或刪除 內容自動屏蔽
作者: 黑道明 時間: 2018-10-12 10:56
本帖最後由 黑道明 於 2018-10-12 11:05 編輯
按教學咁抄過去, 有幾個問題
1) 新save既file, 入面只抄左數據, 保留唔到原本format
2) 只能save係同一fold ...
myricky 發表於 2018-10-12 10:36
感謝大大!!!!!
慢慢黎,成件事最快下星期尾先開始用到,仲有好多時間去DEBUG。
如果可以的話,大大可以另開新POST去講解一下 VBA RUNNING個步驟。
呢個一定幫到千千萬萬既港奴文員.......
1) 新save既file, 入面只抄左數據, 保留唔到原本format
大大好細心呀
2) 只能save係同一folder
呢層冇問題 , 同一folder反而方便D
3) 佢用class no, 即係一行數字做control, 一遇到你呢類唔係數字就搞唔掂
我就係搵緊點解決.....可以先開多一張SHEET放CODE NAME, 但係唔識CALL返佢出黎
4) 如果要save既file數目多, 睇唔到進度
佢一個個掃落去,應該睇到吧
5) 如果你遲D又有第二set data file要做同一樣野, 又要成抽code抄過去
你又知既.......冇錯.......係有幾大set data 幾小set data... 一共一張內
搞完50張EXCEL之後~
仲要 利用 Excel name list 去做 Word mail merge mail , 再經Outlook 用同一張Excel 既附件Path , Send 比50個唔同既人。
依家有大大幫手搞張EXCEL , 我可以去學下點用 Excel > Word > Outlook 加附件。
作者: myricky 時間: 2018-10-12 11:05
提示: 作者被禁止或刪除 內容自動屏蔽
作者: 黑道明 時間: 2018-10-12 11:43
感謝大大~~
因為呢部份都常用~~
所以想分開學下~
當然一次過做曬就緊係更加要學啦~~
作者: myricky 時間: 2018-10-12 12:04
提示: 作者被禁止或刪除 內容自動屏蔽
作者: myricky 時間: 2018-10-12 15:22
提示: 作者被禁止或刪除 內容自動屏蔽
作者: 黑道明 時間: 2018-10-12 16:47
初步搞掂, 如下:
係Excel vba file輸入有關資料, 然後按"Transfer制". 我當dept係control, 即係根據唔同de ...
myricky 發表於 2018-10-12 15:22
唔該C兄~~
公司個MON太細...... 1280*1024........
返去用 2560*1440先再慢慢試~~
作者: 黑道明 時間: 2018-10-16 10:50
本帖最後由 黑道明 於 2018-10-16 10:51 編輯
初步搞掂, 如下:
係Excel vba file輸入有關資料, 然後按"Transfer制". 我當dept係control, 即係根據唔同de ...
myricky 發表於 2018-10-12 15:22
C兄,個STAFF運行冇問題~

轉用真LIST都冇問題~而且好快~~4分鐘做左42個FILE
但係冇左個JOB TAB 係新FILE~~
個report 應該係有 SHEET STAFF , 同SHEET JOB
另外一開始 Dim data(10000, 10)
10000 同 10 分別代表咩~~???
作者: myricky 時間: 2018-10-16 11:08
提示: 作者被禁止或刪除 內容自動屏蔽
作者: 黑道明 時間: 2018-10-16 13:56
本帖最後由 黑道明 於 2018-10-16 14:24 編輯
個sheet "job"係我係master file求其加上去, 去simulate你個master file有好多個sheet, 而你要求既只係將 ...
myricky 發表於 2018-10-16 11:08
明白~10000,10 係咩~~
master file 得兩張SHEET
係唔係咁簡單可以做到COPY SHEET 連公式?
可以係邊步加???
- sheettocopy = Cells(8, "b")
- Sub MoveSheets()
- Sheets(sheettocopy).Select
- Sheets(sheettocopy).Copy After:=datasheet
- End Sub
我再試試先~
- Array(datasheet, sheettocopy)
作者: myricky 時間: 2018-10-16 14:25
提示: 作者被禁止或刪除 內容自動屏蔽
作者: 黑道明 時間: 2018-10-16 14:59
本帖最後由 黑道明 於 2018-10-16 15:01 編輯
第二張sheet洗唔洗再篩選? 如果唔洗, 可以插入以下藍色呢句 (sheet名自己改)
Workbooks(datawb).Activ ...
myricky 發表於 2018-10-16 14:25
- Workbooks(datawb).Activate
- Sheets(Array(datasheet, sheettocopy)).Select
- Sheets(Array(datasheet, sheettocopy)).Copy
其實有冇唔同~?.?
另外試左好耐唔得原來係.....
=ActiveSheet
作者: myricky 時間: 2018-10-16 15:01
提示: 作者被禁止或刪除 內容自動屏蔽
作者: 黑道明 時間: 2018-10-16 15:07
GOOGLE出黎~
我之前自己諗係=datawb........
COPY 之後~呢行出BUG~~
Range(Cells(strow, "a"), Cells(totalrow, lastcol)).ClearContents
用呢個反而冇出DEBUG
- Workbooks(datawb).Activate
- Sheets(Array(datasheet, sheettocopy)).Select
- Sheets(Array(datasheet, sheettocopy)).Copy
- Range(Cells(strow, "a"), Cells(totalrow, lastcol)).ClearContents
作者: myricky 時間: 2018-10-16 15:12
提示: 作者被禁止或刪除 內容自動屏蔽
作者: 黑道明 時間: 2018-10-16 17:22
本帖最後由 黑道明 於 2018-10-16 17:32 編輯
我用Array完成左件樹~
用少左一日時間C&P~多謝C兄~~
不過又有另一個問題......
Mail Merge.....
整好左既LIST , 要個別獨立SEND比唔同E-MAIL
EXCEL會有 人名 , E-MAIL , 附件檔案名A , 附件檔案名B , 附件檔案名C , 附件檔案名D , 附件路徑.
附件檔案名B , 附件檔案名C , 附件檔案名D 係封封都一樣.
附件檔案名A 跟人名或公司 , 每個都唔同~
另外 WORD 入面有 內文既 TEMPLATE.....
然後我GOOGLE......想去試既時候.......
OUTLOOK入面冇人地寫既 Mail Merge 制.......
然後又搵唔到方法可以SAVE唔同附件........
其實....有咩方法可以做到.....???
T.T
作者: myricky 時間: 2018-10-16 17:41
提示: 作者被禁止或刪除 內容自動屏蔽
作者: 黑道明 時間: 2018-10-16 20:15
你既附件檔, 會唔會係由之前excel gen既report file? 如果唔係, d附件檔, 本身有冇咩attribute, 例如prefix ...
myricky 發表於 2018-10-16 17:41
聽日返屋企再cap圖講解
作者: 黑道明 時間: 2018-10-18 13:34
你既附件檔, 會唔會係由之前excel gen既report file? 如果唔係, d附件檔, 本身有冇咩attribute, 例如prefix ...
myricky 發表於 2018-10-16 17:41
老細話呢個寄出動作應該只係做一次~
為安全起見.....都係一封封寄算~~
唔該C兄~~
作者: 黑道明 時間: 2018-10-23 15:59
本帖最後由 黑道明 於 2018-10-23 16:03 編輯
你既附件檔, 會唔會係由之前excel gen既report file? 如果唔係, d附件檔, 本身有冇咩attribute, 例如prefix ...
myricky 發表於 2018-10-16 17:41
C兄~
有個問題想問~~
20000隻的MASTER 行完個VBA , 之後所生成既FILE~
入面實際有 2000行資料 SIZE 2171KB
打開張EXCEL , 2002行下有4000-6000行空白
DEL左之後 SAVE , 就變左做1102KB =.=
入面實際有 71行資料 SIZE 1673KB
打開張EXCEL , 72行下有6000-8000行空白
DEL左之後 SAVE , 就變左做56KB =.=
想問係唔係同 一開始個DIM (10000,10) 有關?
定係其他事項相關?
作者: myricky 時間: 2018-10-23 16:44
提示: 作者被禁止或刪除 內容自動屏蔽
作者: 黑道明 時間: 2018-10-23 17:27
原來係咁~~
聽日試下先~~
唔該C兄~~
作者: 黑道明 時間: 2018-10-24 12:03
本帖最後由 黑道明 於 2018-10-24 12:05 編輯
自己係上面加左呢句 去代替 "job"
sheettocopy = Cells(8, "b")
Workbooks(datawb).Activate
Sheets(Array(datasheet, sheettocopy)).Select
Sheets(Array(datasheet, sheettocopy)).Copy
同你講既一樣,因為用左Array一次過COPY兩張Sheet,令到active sheet變成"job"
Worksheets(datasheet).Activate
Rows(strow & ":" & totalrow).Delete
之後用呢個就可以順利運行,所有File先10mb
Worksheets(datasheet).activate
Range(Cells(strow, "a"), Cells(totalrow, lastcol)).ClearContents
呢個都運行到,只不過仲係所有File 90mb~~
C兄一句 VBA 減左9成 SIZE
作者: myricky 時間: 2018-10-25 00:05
提示: 作者被禁止或刪除 內容自動屏蔽
作者: 黑道明 時間: 2021-4-20 22:30
TO eoe~
試下~~
COPY sheet 既code 比我DEL左~
無視果欄
其他你試下~
https://h0.hkepc.com/forum/attachment.php?aid=2259546&k=e87151e52571495d44177824b118b845&t=1781822969&sid=eM7JhRVa4r
作者: eoe 時間: 2021-4-20 23:51
唔該師兄 我試試 thank!!


