Excel VBA如何实现B列包含字母B时为对应A列内容添加连字符
合并后可直接使用的VBA代码
Sub AddDashesWhenBHasLetterB() Dim LastRow As Long Dim i As Long ' 获取A列最后有内容的行号 LastRow = Range("A" & Rows.Count).End(xlUp).Row ' 从第2行开始遍历,若需要处理第1行内容,可将下方的2改为1 For i = 2 To LastRow ' 判断B列当前行是否包含字母B,若需要不区分大小写(小写b也判定符合),可将vbBinaryCompare改为vbTextCompare If InStr(1, Range("B" & i).Value, "B", vbBinaryCompare) > 0 Then ' 先清除原有连字符,再按指定规则添加连字符 Range("A" & i).Value = Format(Replace(Range("A" & i).Value, "-", ""), "@@@@@-@@@-@@@@") End If Next i End Sub
逻辑调整说明
- 整合了两段代码的核心功能,遍历每行时先做B列的条件校验,符合要求才执行A列的格式化操作
- 将原校验代码的全等判断改为包含判断,匹配「B列内容包含字母B即可触发格式修改」的需求
- 保留了原格式化代码的去重连字符逻辑,避免A列已有连字符时出现格式错乱
内容的提问来源于stack exchange,提问作者Claire Peacock
相关产品推荐
相关产品推荐

