2009-11-19 65 views
0

VBA類有很多開銷嗎?我注意到,在以前的工作簿中,我實際上做了與我的類中的當前工作相同的內容,但運行速度更快。VBA類中涉及很多開銷嗎?

+2

你的問題有點含糊。你在比較什麼? – 2009-11-19 00:05:16

+0

隱含的是,OP將類與標準模塊進行比較......他們還比較了什麼? +1抵消。 – Oorang 2009-11-19 00:15:17

+0

我曾經有一個代碼駐留在一個模塊中,該模塊檢測到一組產品的「邊界」,然後顯示或隱藏這些行。然後我將該代碼移入一個類模塊,並在宏完成之前注意到0.5秒的延遲。 (不一致,但在該標記內和附近) – JakeTheSnake 2009-11-19 00:15:58

回答

0

要回答你的問題,有一些類的開銷。即創建和銷燬這些對象。訪問屬性也可能稍慢一點。但總的來說,它應該是一個相當可以忽略不計的數額。除非以毫秒爲單位進行測量,否則根本不應該看到任何差異。代碼現在被結構化的方式更可能是破壞性的。我建議逐步通過代碼並觀察它實際上在做什麼。可能有些事情可以用來優化代碼。
舉一個例子:如果你有一個屬性執行一個不會改變的值的查找,考慮首先訪問該屬性來查找值並存儲它以供將來參考。因此,對該屬性的任何調用都不必執行查找。如果您認爲數據可能會更改,請考慮使用刷新方法或可選刷新參數。
這個例子可能不適用於你的具體情況,但你明白了。您可能會考慮發佈您的代碼並尋求幫助,使其更快。

+0

感謝您的幫助!結果發現一條線正在消除一切:S。在任何情況下,有用的類都不會增加很多開銷。 – JakeTheSnake 2009-11-19 00:34:25