返回列表 上一主題 發帖

[發問] (己解決!) 想請教各位,那一種寫法比較快一點? (想優化一下)

回復 1# StanleyVic
你可在兩寫法 設立一變數為Time,程式結束前   MsgBox    Time-變數  測試哪一寫法快
另提供一不用迴圈的解法
  1. Sub Ex()
  2.     Dim Rng As Range, T As Date
  3.     T = Time
  4.     With Sheets("Status B Log")
  5.         Set Rng = Range("D6", Range("D65536").End(xlUp))  'D欄資料範圍
  6.         Rng.Offset(, 36) = ""                             'N欄清除 (將D欄的範圍位移到N欄的範圍)
  7.         Set Rng = Rng.SpecialCells(xlCellTypeConstants)   'D欄有資料範圍
  8.         With Rng.Offset(, 36)                             'D欄有資料範圍位移到N欄的範圍
  9.             .Value = "=Round(IF(RC[-36]<>"""",RC[-20]-RC[-5],""""),2)"
  10.             .Value = .Value
  11.         End With
  12.     End With
  13.     ThisWorkbook.Save
  14.     MsgBox (" Quoted vs Invoice ( Variance ) - OK !" & Chr(10) & "共用時: " & Format(Time - T, "HH:MM:SS"))
  15. End Sub
複製代碼

TOP

本帖最後由 GBKEE 於 2011-7-19 08:16 編輯

回復 3# oobird超版
是你的快 只給一次值          .Cells(6, "AN").Resize(UBound(d), 1) = arr
我的程式給了二次值           .Value = "=Round(IF(RC[-36]<>"""",RC[-20]-RC[-5],""""),2)"
                                                  .Value = .Value
於我的PC約慢了 0.078秒   
PS : 2003 用 Rows.Count 測試

TOP

回復 6# StanleyVic    回復 7# StanleyVic
你的疑問論壇已提問很多了, 不是不回答你.建議你多看 論壇裡的發問.
期待你說:"我了解啦"

format 是如何寫才能算出 毫秒 ?
Timer (從前一個午夜算起到現在所經過的秒數秒數) 與 Time(系統時間)   有差別

TOP

        靜思自在 : 稻穗結得越飽滿,越會往下垂,一個人越有成就,就要越有謙沖的胸襟。
返回列表 上一主題