2009-12-04 1006 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 
相关问题