我正在编写一个脚本,将数据从一个工作簿复制到另一个工作簿。后者被用作一种数据库(不是我的想法)。作为测试,我正在复制约 300 行数据,其中 3 列条件格式,其余为纯文本。复制文本很容易,几乎是即时的,但格式化比较困难。目前我正在使用下面的代码来复制格式化的单元格:
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 秒内执行,但不会复制条件格式应用的任何格式。
是否有更有效的方法来复制条件格式应用的单元格和字体颜色?