我有一个工作表,其中包含大量包含大量文本的单元格。在任何特定单元格内,可能会有一些红色的文本。我想删除该文本并将其复制到其他列。
我有一个VBA函数通过逐个字符检查单元格内容来完成此操作,但电子表格非常大,并且该过程变慢为爬行。有没有更有效的方法呢?
答案 0 :(得分:1)
您的问题有点模糊,但看起来您需要让VBA功能检查每个单元格的.Interior.Color
属性,例如Worksheets("yourname").Cells(rowIndex, colIndex).Interior.Color
答案 1 :(得分:1)
你到底是怎么做到的?您是否正在激活单元格然后循环读取数据?您是否尝试these tips改善宏观性能?如果只有单词(而不是给定单词中的特定字母)显示为红色,您是否可以不在文本块中创建临时数组(使用空格“”作为分隔符)并循环遍历每个单词?
粗糙的前)
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