Excel VBA按IF条件更新单元格时报运行时错误1004如何解决
报错原因
- 偏移参数非法:
d是G列(第7列)的单元格对象,d.Offset(0, -7)表示向左偏移7列,会定位到Excel不存在的第0列,直接触发1004报错。你需要匹配的AA列位于G列右侧20列,偏移参数应写为Offset(0, 20)。 - 模糊匹配语法错误:VBA中判断文本是否包含指定内容,不能使用
=搭配通配符的写法,需要使用Like运算符,正确判断逻辑为值 Like "*Closed*"。
修正后的代码段
''问题段修正后代码'' Set rngVis2 = ws.Range("G2:G" & LR).SpecialCells(xlCellTypeVisible) For Each d In rngVis2.Cells If d.Value = True And d.EntireRow.Columns("AA").Value Like "*Closed*" Then d.EntireRow.Columns("AA").Value = "Closed - Duplicate" End If Next d
优化说明:直接使用
d.EntireRow.Columns("AA")定位目标列,不需要手动计算偏移量,可避免列序调整后偏移参数失效的问题。
内容的提问来源于stack exchange,提问作者Socramvm
相关产品推荐
相关产品推荐

