按颜色删除单元格内指定文字
function removeCharByColor(查找颜色索引 = 2, 结果字号 = 9, 结果颜色 = 0) {
Application.ScreenUpdating = false;
Application.EnableAnimations = false;
Application.EnableEvents = false;
Application.Calculation = xlCalculationManual
var rangeAll = Selection;
var rangeArr = [...rangeAll];
rangeArr.forEach(rng => {
var c = rng.Characters();
var len = rng.Characters().Count;
var tempStr = [];
for (var i = 1; i <= len; i++) {
var char = rng.Characters(i, 1);
if (char.Font.ColorIndex != 查找颜色索引) {
tempStr.push(char.Text);
}
DoEvents();
}
rng.Value2 = tempStr.join('');
});
(obj => {
obj.Size = 结果字号;
obj.Color = 结果颜色;
})(rangeAll.Font);
Application.ScreenUpdating = true;
Application.EnableAnimations = true;
Application.EnableEvents = true;
Application.Calculation = xlCalculationAutomatic
alert("完成!");
}
function 按颜色删除单元格内指定文字(){
removeCharByColor(2,9,0);
}
辅助方法
function 查看每个文字样式(){
var rng = Selection;
var len = rng.Characters().Count;
for(var i=1; i <= len; i++) {
var char = rng.Characters(i,1);
Console.log(`【内容】:${char.Text}; 【字号】:${char.Font.Size}; 【Color】${char.Font.Color}; 【ColorIndex】:${char.Font.ColorIndex}`);
}
}
参考资料
Excel VBA-单格内,按文字颜色处理文字
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/49a467697d6813b8260a61f7d9f2984b.png)