- 帖子
- 142
- 主題
- 18
- 精華
- 0
- 積分
- 160
- 點名
- 294
- 作業系統
- win10 64位元
- 軟體版本
- office2003
- 閱讀權限
- 20
- 性別
- 男
- 來自
- 臺灣 高雄市
- 註冊時間
- 2015-7-18
- 最後登錄
- 2026-11-1
         
|
本帖最後由 lcctno 於 2015-8-23 18:52 編輯
由於在下是vba初學者 故嘗試將我使用函數寫的數百mb之excell檔 使用錄製巨集的方式 來將該檔瘦身 雖然瘦身後可正常使用 但我想應該程式碼也有簡化的可能性
我知道可以將 Rows("3:101").Select 改成 Rows("3:1001").Select 但會發生類似系統資源不夠的警告語 故只好寫成一次只判斷100筆的資料 但我目前的資料也接近6000筆了 且還會繼續增加
希望有高手能幫助我簡化它 並讓它能順利的執行到 10001筆 (為將來留後路) 謝謝了
目前瘦身的處理過程是將每一分頁 指保留一列之函數 使用vba將之複製並貼上99列函數後 在將附製上之結果變成純文字再貼回原處 依此類推...工作表.由"析1" 到"析10" 總共10分頁 如附圖
分隔線++++++++++++++++++++++++++++++++++++++++++++++
'判斷列1之值是否在工作表"Data"對應之每日高低值的範圍內
Sub 判斷列()
'2~101
'製作判斷列
Sheets("析1").Select
Rows("2:2").Select
Selection.Copy
Rows("3:101").Select
ActiveSheet.Paste
'瘦身
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
'製作判斷列
Sheets("析2").Select
Rows("2:2").Select
Application.CutCopyMode = False
Selection.Copy
Rows("3:101").Select
ActiveSheet.Paste
'瘦身
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
...............
. ....略過很多比工程碼...............
'製作判斷列
Sheets("析10").Select
Rows("2:2").Select
Application.CutCopyMode = False
Selection.Copy
Rows("202:301").Select
ActiveSheet.Paste
'瘦身
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Data").Select
End Sub
匯出之巨集
判斷列.bas.zip (640 Bytes)
|
|