2012-10-30 71 views
2

有沒有將對象從引用(例如範圍或單元)複製到變量的方法?將對象從引用複製到變量中

我之所以要這樣做的原因是因爲我有一個巨大的宏,可以計算很多東西,並使用許多複製+粘貼操作,並在許多單元格中循環並更改它們。這個效果並不好,所以我想盡量減少GUI操作並在後臺工作,這樣我就可以將整個結果放入一個數組中,最後粘貼到GUI中。問題是我需要的對象不僅僅是單元格/範圍的值,因爲我還需要更改其他屬性(例如大小或顏色)。

+0

如果你的代碼很慢,你想加快速度,試試吧...... –

+0

@TimWilliams代碼太多了。如果我的原始問題能得到答案,我將能夠自行解決。 – Lerkes

+0

我明白你在說什麼,但很難提供更好的表現方式來替代你已經在做的事情,而沒有看清楚你是如何做的。你不需要發佈整個事情,只是一個代表性的部分。 –

回答

1

由於與對象模型的每次調用相關的開銷,像單個單元格上的循環操作很慢。所以訣竅是在每次調用中使用多個單元格。
對於值,您可以從一系列單元格中獲取值的數組,以生成一個二維數組,然後您可以將該數組分配回
,以獲得格式,您可以使用條件格式大範圍的單元格或複製格式並將其粘貼到大範圍的單元格中。

+0

問題是我必須改變幾乎每個單元格,這取決於我擁有的數據。所以我想獲得一個單元格對象的副本,所以我不必在GUI中做任何事情,直到將所有單元格副本粘貼回原來的結尾。 – Lerkes

+3

您可以在VBA中使用Range對象,但範圍對象實際上並不是範圍的副本,因此只能使用有限。不知道爲什麼您需要使用GUI:只需在屏幕更新和自動計算關閉的情況下在VBA中完成所有操作。 –

+0

我用你提到的選項測試了程序。計算時間從約45秒降至約35秒。這對開始並不壞,謝謝。 – Lerkes

相關問題