Board logo

標題: [發問] AUTOFILL-範圍太大 [打印本頁]

作者: freeffly    時間: 2013-1-30 16:06     標題: AUTOFILL-範圍太大

請問autofill會有範圍限制嗎
用下面的方式去跑會報錯說範圍太大
如果改成比較小的範圍就可以
還是我代碼有問題嗎?
  1. Sub 配壓加_損耗片數()
  2.     T = Timer
  3.     Application.ScreenUpdating = False
  4.     r = Range("A65536").End(xlUp).Row - 4
  5.     Range("AF4").Resize(, 8) = Array("單張片數", "片數1", "單張片數", "片數2", "最大差異", "多耗張數", "比例", "生產月份")
  6.     With Range("AF5").Resize(, 8)
  7.         .NumberFormatLocal = "0.00_);[紅色](0.00)"
  8.         .FormulaR1C1 = Array( _
  9.             "=ROUNDDOWN(RC30/RC28,0)*ROUNDDOWN(RC31/RC29,0)", _
  10.             "=ROUNDDOWN(RC30/RC28,0)*ROUNDDOWN(RC31/RC29,0)*RC20", _
  11.             "=ROUNDDOWN(RC31/RC28,0)*ROUNDDOWN(RC30/RC29,0)", _
  12.             "=ROUNDDOWN(RC31/RC28,0)*ROUNDDOWN(RC30/RC29,0)*RC20", _
  13.             "=MAX(RC[-1],RC[-3])-RC[-24]", _
  14.             "=ROUND(RC[-1]/MIN(RC[-3],RC[-5]),2)", _
  15.             "=RC[-1]/RC20", _
  16.             "=IF(LEN(RC[-34])>9,YEAR(RC[-34])&TEXT(MONTH(RC[-34]),""00""),LEFT(RC[-34],3)+1911&RIGHT(LEFT(RC[-34],6),2))")
  17.         .AutoFill .Resize(5000, 8)
  18.     End With
  19.     With Columns("AM:AM")
  20.         .Copy
  21.         .PasteSpecial xlPasteValues
  22.     End With
  23.     Application.CutCopyMode = False
  24.    ' For C = 2 To Range("A65536").End(xlUp).Row
  25.       MsgBox Timer - T
  26. End Sub
複製代碼
[attach]14112[/attach]
作者: mark15jill    時間: 2013-1-30 16:57

本帖最後由 mark15jill 於 2013-1-30 16:59 編輯

回復 1# freeffly


    大大您的檔案會不會太大了點...4.57MB..
建議 將資料分流到其他活頁簿
避免一開檔案 就跑的跟烏龜一樣~(2GB 記憶體開您的檔案竟然會盪掉)...
另外
建議 檔案開起的設定不要用時間控制
作者: freeffly    時間: 2013-1-30 17:10

回復 2# mark15jill


    會當掉喔?
    這是系統轉出一個月資料
   速度算還好
   有時要處理30幾M的資料
   用vba跑比人工快多了
作者: stillfish00    時間: 2013-1-30 17:32

回復 3# freeffly
Excel2010測試
跑完沒出現你說的錯誤~
作者: freeffly    時間: 2013-1-31 09:41

回復 4# stillfish00


    我在想可能是我其他程序用掉記憶體
   造成執行這各程序時會出問題
   因為我另一個程序也有相同範圍
   他執行時沒問題
   輪到這各執行就有問題
   

   謝謝大家測試
作者: mark15jill    時間: 2013-1-31 14:57

本帖最後由 mark15jill 於 2013-1-31 15:03 編輯

另外
freeffly 大大
煩請檢查您的EXCEL 是否有 Startup 的巨集存在
我的被感染了

若確定為大大您的附檔有 該巨集病毒,小弟將會呈報予版主
作者: HUNGCHILIN    時間: 2013-1-31 18:28

回復 6# mark15jill

阿吉沒看到Startup
作者: mark15jill    時間: 2013-2-1 08:21

回復 7# HUNGCHILIN

兩位大大
之所以小弟提出此疑慮是因為 最近小弟都在琢磨VB2010 很少用到EXCEL
且上星期才電腦重灌 整個硬碟清洗過
在開起樓主大大的附檔前 確認過沒 Startup 之相關跡象
這也附合小弟在上幾層的文章內所說
一開始就有時間設定
導致2GB 記憶體的電腦也盪!~

如果確定沒有  那小弟在此跟樓主大大說聲

對不起 我誤會您了
作者: freeffly    時間: 2013-2-1 10:05

回復 8# mark15jill


    小弟不寫病毒的
   也沒那各功力
回復 7# HUNGCHILIN
版主請問如果中那各病毒是會每各Excel都會有那各巨集嗎?
會擴散嗎
之前都不會去想網路上發問的問題會有病毒
不過有其他人提出就問一下
作者: freeffly    時間: 2013-2-1 10:10

回復 7# HUNGCHILIN
看到版主的另外一個帖提到
真是恐怖
再來好好研究版主這一帖


    執行效果:
1.使用此檔 此檔會自動另存 "StartUp.xls"檔案到Application.StartupPath 路徑資料夾
2.新增檔案與開啟舊檔都會自動移植入此感染模組,若不注意你所有使用過的EXCEL檔案都會受感染
作者: freeffly    時間: 2013-2-1 10:16

回復 7# HUNGCHILIN

  請問版主是不是這裡面沒有東西就沒中那各毒?
    C:\Documents and Settings\freeffly\Application Data\Microsoft\Excel\XLSTART
作者: mark15jill    時間: 2013-2-1 14:03

樓主大大誤會了
小弟在先前文章有提到  
"煩請檢查您的EXCEL 是否有 Startup 的巨集存在
我的被感染了"

並不是說樓主大大編寫病毒
作者: freeffly    時間: 2013-2-1 14:59

回復 12# mark15jill


    恩 看了阿吉版主的帖子
   也發現在網路上抓檔很容易中標
作者: Hsieh    時間: 2013-2-1 15:25

回復 1# freeffly

這樣的下拉動作會受限於可用記憶體大小
用迴圈寫入公式來解決此問題
    Range("AF4").Resize(, 8) = Array("單張片數", "片數1", "單張片數", "片數2", "最大差異", "多耗張數", "比例", "生產月份")
    ar = Array( _
        "=ROUNDDOWN(RC30/RC28,0)*ROUNDDOWN(RC31/RC29,0)", _
        "=ROUNDDOWN(RC30/RC28,0)*ROUNDDOWN(RC31/RC29,0)*RC20", _
        "=ROUNDDOWN(RC31/RC28,0)*ROUNDDOWN(RC30/RC29,0)", _
        "=ROUNDDOWN(RC31/RC28,0)*ROUNDDOWN(RC30/RC29,0)*RC20", _
        "=MAX(RC[-1],RC[-3])-RC[-24]", "=ROUND(RC[-1]/MIN(RC[-3],RC[-5]),2)", _
        "=RC[-1]/RC20", _
        "=IF(LEN(RC[-34])>9,YEAR(RC[-34])&TEXT(MONTH(RC[-34]),""00""),LEFT(RC[-34],3)+1911&RIGHT(LEFT(RC[-34],6),2))")
For i = 0 To 7
    With Range("AF5").Offset(, i).Resize(5000, 1)
        .NumberFormatLocal = "0.00_);[紅色](0.00)"
        .FormulaR1C1 = ar(i)
    End With
Next
作者: freeffly    時間: 2013-2-1 15:44

回復 14# Hsieh


    對於超版的解決方式真是驚訝
   沒想過這種處理方式
   把那各5000筆改成動態一樣很快
   學到一招
   真是太興奮了




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)