返回列表 上一主題 發帖

[發問] AUTOFILL-範圍太大

[發問] 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
複製代碼
範圍太大.rar (722.53 KB)
字典兩各字 還真難理解

回復 14# Hsieh


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

TOP

回復 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
學海無涯_不恥下問

TOP

回復 12# mark15jill


    恩 看了阿吉版主的帖子
   也發現在網路上抓檔很容易中標
字典兩各字 還真難理解

TOP

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

並不是說樓主大大編寫病毒

  多做多想多學習,少看少錯少迷途

  多做=多多練習,多多編寫。
  多想=想想為什麼人家程式要那樣寫,如果換成自己,又會怎寫。
  多學習=學習人家的發問並解答,學習人家的寫法

  少看=只看不做也枉然

TOP

回復 7# HUNGCHILIN

  請問版主是不是這裡面沒有東西就沒中那各毒?
    C:\Documents and Settings\freeffly\Application Data\Microsoft\Excel\XLSTART
1

評分人數

字典兩各字 還真難理解

TOP

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


    執行效果:
1.使用此檔 此檔會自動另存 "StartUp.xls"檔案到Application.StartupPath 路徑資料夾
2.新增檔案與開啟舊檔都會自動移植入此感染模組,若不注意你所有使用過的EXCEL檔案都會受感染
字典兩各字 還真難理解

TOP

回復 8# mark15jill


    小弟不寫病毒的
   也沒那各功力
回復 7# HUNGCHILIN
版主請問如果中那各病毒是會每各Excel都會有那各巨集嗎?
會擴散嗎
之前都不會去想網路上發問的問題會有病毒
不過有其他人提出就問一下
字典兩各字 還真難理解

TOP

回復 7# HUNGCHILIN

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

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

對不起 我誤會您了

  多做多想多學習,少看少錯少迷途

  多做=多多練習,多多編寫。
  多想=想想為什麼人家程式要那樣寫,如果換成自己,又會怎寫。
  多學習=學習人家的發問並解答,學習人家的寫法

  少看=只看不做也枉然

TOP

回復 6# mark15jill

阿吉沒看到Startup
Hung-Chi Lin/林宏吉
HUNGCHILIN/林宏吉的OFFICE專欄

TOP

        靜思自在 : 對父母要知恩,感恩、報恩。
返回列表 上一主題