使用VBA插入带OR条件的IF公式遇阻,求助解决方案
解决VBA批量插入IF+OR公式的问题
方法1:适配你的循环写法
你原来的循环逻辑可以直接复用,但要注意VBA字符串里的双引号必须用两个双引号转义,否则会触发语法错误。修改后的代码如下:
Dim LastRow As Long LastRow = Cells(Rows.Count, "J").End(xlUp).Row ' 获取J列最后一行的行号 For i = 2 To LastRow Dim formulaText As String ' 公式里的每个双引号都要写成"",这是VBA的字符串转义规则 formulaText = "=IF(OR(J" & i & "=""S06"",J" & i & "=""S07"",J" & i & "=""S08""), ""Yes"", ""No"")" Range("J" & i).Formula = formulaText ' 用Formula属性比Value更稳妥,确保Excel识别为公式 Next i
方法2:高效批量赋值(推荐)
不用逐行循环,直接给整个目标区域一次性设置公式,Excel会自动处理相对引用,效率更高(数据量大时更明显):
Dim LastRow As Long LastRow = Cells(Rows.Count, "J").End(xlUp).Row ' 直接给J2到最后一行的区域赋值公式,Excel会自动把J2对应到每一行的单元格 Range("J2:J" & LastRow).Formula = "=IF(OR(J2=""S06"",J2=""S07"",J2=""S08""), ""Yes"", ""No"")"
内容的提问来源于stack exchange,提问作者SDev95
相关产品推荐
相关产品推荐

