VB.NET 如何实现Excel范围A-H列满足H列条件时更改对应行区域颜色
问题原因
- 第一段代码使用
EntireRow属性选中了单元格所在的完整行,导致背景色修改范围超出A~H列的限制。 - 第二段代码中
h.Range("A1:H1")为相对范围引用,会以H列的h单元格作为左上角原点计算范围,最终选中H~N列,因此出现填充偏移。
修正后代码
For Each h In shXL.Range("A2:H150").Columns(8).Cells If h.Value > 14 Then ' 定位当前行的A到H列区域修改背景色 shXL.Range("A" & h.Row & ":H" & h.Row).Interior.Color = Color.FromArgb(251, 254, 138) End If Next
如果偏好更简洁的写法,也可以用偏移+范围裁剪的方式实现,效果完全一致:
For Each h In shXL.Range("A2:H150").Columns(8).Cells If h.Value > 14 Then ' 从H列左移7列到A列,再取1行8列的范围 h.Offset(0, -7).Resize(1, 8).Interior.Color = Color.FromArgb(251, 254, 138) End If Next
内容的提问来源于stack exchange,提问作者Иван Олександров
相关产品推荐
相关产品推荐

