本帖最後由 myricky 於 2018-10-16 17:47 編輯

你既附件檔, 會唔會係由之前excel gen既report file? 如果唔係, d附件檔, 本身有冇咩attribute, 例如prefix, suffix, 或者放係唔同folder, 就會email比唔同人? 因為有左呢D關係, 就可以set rule, 唔洗每次都要準備個excel list.

都係個句, 最好有screen capture, 易明好多.

TOP

你既附件檔, 會唔會係由之前excel gen既report file? 如果唔係, d附件檔, 本身有冇咩attribute, 例如prefix ...
myricky 發表於 2018-10-16 17:41


聽日返屋企再cap圖講解

TOP

你既附件檔, 會唔會係由之前excel gen既report file? 如果唔係, d附件檔, 本身有冇咩attribute, 例如prefix ...
myricky 發表於 2018-10-16 17:41



    老細話呢個寄出動作應該只係做一次~
為安全起見.....都係一封封寄算~~

唔該C兄~~

TOP

本帖最後由 黑道明 於 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) 有關?
定係其他事項相關?

TOP

本帖最後由 myricky 於 2018-10-23 16:45 編輯

回覆 24# 黑道明

                                                                                                                        
唔關array事, 係你上次要求其他sheet都要copy, 咁我咪建議加以下呢句既...

Workbooks(datawb).Worksheets("job").Copy after:=ActiveSheet

但加左之後, active sheet變成"job"等, 而唔再係原本data個sheet, 所以以下呢句, 就apply唔到落data sheet度, 而係apply錯左去以上新加既"job"sheet 度
Range(Cells(strow, "a"), Cells(totalrow, lastcol)).ClearContents

所以只要先加一句
Worksheets(datasheet).activate                                                          'activate返data sheet
Range(Cells(strow, "a"), Cells(totalrow, lastcol)).ClearContents  '清空有數據既cell

又或者改成

Worksheets(datasheet).activate                                                          'activate返data sheet
Rows(strow & ":" & totalrow).Delete                                                  '將原本有DATA既ROW全部DELETE

就可以解決file size過大 (clear錯左位置)既bug, 小問題一個.

TOP

回覆  黑道明

                                                                                      ...
myricky 發表於 2018-10-23 16:44



    原來係咁~~
聽日試下先~~

唔該C兄~~

TOP

本帖最後由 黑道明 於 2018-10-24 12:05 編輯
回覆  黑道明

                                                                                      ...
myricky 發表於 2018-10-23 16:44


自己係上面加左呢句 去代替 "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

TOP

自己係上面加左呢句 去代替 "job"
sheettocopy = Cells(8, "b")

Workbooks(datawb).Activate
Sheets(Arr ...
黑道明 發表於 2018-10-24 12:03


yeah~ vba首要條件當然係做到想要既野, 跟住就係optimize, 包括增加運行速度, 改善用家體驗, 減細無謂既file size等...

TOP