根据 C 列中的值在单元格周围设置条件格式粗边框
Conditional formatting thick borders around cells based on Value in C column
在一家生产公司的工作簿中,他们想跟踪他们的产品位于哪个部门。
工作簿的样子。
我正在尝试根据 C 列中的“类型”自动设置单元格范围周围的粗边框格式。
为了说明,所选范围 C2-4:AC2-4 需要使用粗外边框进行格式化,因为它们来自同一类型“马铃薯”。
接下来,“菠萝”类型应以相同的方式进行格式化,C5-C8:AC5-AC8 应为所选范围并格式化为粗边框。等等。
以后可以添加其他部门,这就是为什么如果宏可以找到从 C 到最后填充的单元格列的列范围,那就太好了。
类型列是根据查询构建的数据sheet填充的,当新产品添加到 ERP 系统时会自动更新,这意味着类型列的大小会随着新产品的添加而变化添加或删除产品。
宏后应该是什么样子。
我正在使用 Gserg 的双条件格式建议。我仍然想使用 VBA 来格式化粗边框,使用 Gserg 规定的规则,也许只有底粗应该没问题。
我尝试在 VBA 中拼凑一些东西并得到以下结果,但未能成功。
Sub format()
Dim srg As Range: Set srg = Range("A1").CurrentRegion
Dim irg As Range: Set irg = srg.Resize(srg.Rows.Count - 1, srg.Columns.Count - 2).Offset(1, 2)
irg.Select
With Selection
.FormatConditions.Add Type:=xlExpression, Formula1:="=AND(NOT(ISBLANK($C2)); $C2<>OFFSET($C2;-1;0); $C2=OFFSET($C2;1;0))"
With .FormatConditions(.FormatConditions.Count)
.SetFirstPriority
With .FormatConditions(1)
.Borders (xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThick
.Color = 0
.TintAndShade = 0
End With
End With
End With
End sub
它returns
run time error 438 "Object doesn't support this property or method"
为整个 table 创建两个 conditional formatting 规则。
=AND(NOT(ISBLANK($C2)), $C2<>OFFSET($C2,-1,0), $C2=OFFSET($C2,1,0))
=AND(NOT(ISBLANK($C2)), $C2<>OFFSET($C2,1,0), $C2=OFFSET($C2,-1,0))
第一个将绘制组的第一行,第二个将绘制最后一行。使用顶部和底部粗边框相应地格式化它们。分别应用自上而下和自上而下的阴影渐变以实现风格上的触感,这可能会避免您引入第三条规则来绘制中间行的侧边框。
在一家生产公司的工作簿中,他们想跟踪他们的产品位于哪个部门。
工作簿的样子。
我正在尝试根据 C 列中的“类型”自动设置单元格范围周围的粗边框格式。
为了说明,所选范围 C2-4:AC2-4 需要使用粗外边框进行格式化,因为它们来自同一类型“马铃薯”。
接下来,“菠萝”类型应以相同的方式进行格式化,C5-C8:AC5-AC8 应为所选范围并格式化为粗边框。等等。
以后可以添加其他部门,这就是为什么如果宏可以找到从 C 到最后填充的单元格列的列范围,那就太好了。
类型列是根据查询构建的数据sheet填充的,当新产品添加到 ERP 系统时会自动更新,这意味着类型列的大小会随着新产品的添加而变化添加或删除产品。
宏后应该是什么样子。
我正在使用 Gserg 的双条件格式建议。我仍然想使用 VBA 来格式化粗边框,使用 Gserg 规定的规则,也许只有底粗应该没问题。
我尝试在 VBA 中拼凑一些东西并得到以下结果,但未能成功。
Sub format()
Dim srg As Range: Set srg = Range("A1").CurrentRegion
Dim irg As Range: Set irg = srg.Resize(srg.Rows.Count - 1, srg.Columns.Count - 2).Offset(1, 2)
irg.Select
With Selection
.FormatConditions.Add Type:=xlExpression, Formula1:="=AND(NOT(ISBLANK($C2)); $C2<>OFFSET($C2;-1;0); $C2=OFFSET($C2;1;0))"
With .FormatConditions(.FormatConditions.Count)
.SetFirstPriority
With .FormatConditions(1)
.Borders (xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThick
.Color = 0
.TintAndShade = 0
End With
End With
End With
End sub
它returns
run time error 438 "Object doesn't support this property or method"
为整个 table 创建两个 conditional formatting 规则。
=AND(NOT(ISBLANK($C2)), $C2<>OFFSET($C2,-1,0), $C2=OFFSET($C2,1,0))
=AND(NOT(ISBLANK($C2)), $C2<>OFFSET($C2,1,0), $C2=OFFSET($C2,-1,0))
第一个将绘制组的第一行,第二个将绘制最后一行。使用顶部和底部粗边框相应地格式化它们。分别应用自上而下和自上而下的阴影渐变以实现风格上的触感,这可能会避免您引入第三条规则来绘制中间行的侧边框。