我正在編寫一個腳本,將數據從一個工作簿複製到另一個工作簿。後者被用作一種數據庫(不是我的想法)。作爲一個測試,我複製〜300行數據,其中3列條件格式,其餘都是純文本。複製文本很容易,接近即時,但格式化更加困難。目前我使用下面的代碼來複制格式化的單元格:使用VBA複製有條件格式化的單元格
thisSheet.Range("G" & CStr(rRow), "I" & CStr(rRow)).Copy
masterSheet.Range("G" & CStr(mRow), "I" & CStr(mRow)).PasteSpecial (xlPasteAll)
約300行,這大約需要40秒,這太慢了。我不能複製由多行組成的範圍,因爲它們不是按順序粘貼的。
我嘗試使用下面的代碼來嘗試和複製格式。
masterSheet.Range("G" & CStr(mRow), "I" & CStr(mRow)).value = thisSheet.Range("G" & CStr(rRow), "I" & CStr(rRow)).value
masterSheet.Range("G" & CStr(mRow), "I" & CStr(mRow)).Font.Color = thisSheet.Range("G" & CStr(rRow), "I" & CStr(rRow)).Font.Color
masterSheet.Range("G" & CStr(mRow), "I" & CStr(mRow)).Interior.ColorIndex = thisSheet.Range("G" & CStr(rRow), "I" & CStr(rRow)).Interior.ColorIndex
'cell color and font color are the only things i am interested in
該代碼在大約3秒內執行,但是沒有條件格式應用的格式被複制。
是否有更有效的方法來複制條件格式應用的單元格和字體顏色?
您是否考慮過將數據加載到數組中並使用函數中的select case(或if)語句編寫自己的格式條件?執行性能應該非常快。 – Trace 2012-07-09 09:37:00
難道你只是在第二個工作簿中有相同的(或類似的)條件格式規則嗎?然後,您只需要按原樣複製數據,格式將被照顧好。 – Dan 2012-07-09 09:48:40
@丹我不允許更改第二張紙的佈局或格式 – elexis 2012-07-09 23:08:03