2009-12-04 995 views
0

我有一個大量包含大量文本的單元格的工作表。在任何特定的單元格中,可能會有一些文字顯示爲紅色。我想刪除該文本並將其複製到不同的列。如何在Excel中只複製特定顏色的文字?

我有一個VBA函數,它通過逐字檢查單元格內容來完成此任務,但電子表格非常大,並且進程變慢。有沒有更有效的方法來做到這一點?

回答

1

你的問題有點含糊,但它看起來像你需要有你的VBA函數檢查每個單元的.Interior.Color財產如Worksheets("yourname").Cells(rowIndex, colIndex).Interior.Color

+0

的問題是,在單元格中的文本可能有黑色文本*和*紅色文字,我想複製*僅*的紅色文字。而且我認爲*顏色屬性是指填充顏色而不是文本。 – tamewhale 2009-12-04 15:35:13

+0

是的,我誤解了你的「紅色的」意味着單元格的背景填充是紅色的。 – JasDev 2009-12-04 15:45:32

1

你究竟是如何做的呢?你是否在激活細胞,然後讀取循環中的數據?您是否嘗試過these tips以改善宏觀性能?如果只有單詞(而不是特定單詞中的特定字母)被標記爲紅色,您是否可以不使用文本塊(使用空格「」作爲分隔符)創建臨時數組並循環遍歷每個單詞?

粗糙EX)

blockOfText = "This is a block of text." 
myArray = split(blockOfText, " ") 
for each str in myArray 
    '' If color is red, append to "bad text array" and remove from this one '' 
next 
'' Then convert the "myArray" back into a string and place back in the cell 
相關問題