更改范围的边框颜色而不更改线​​型/重量

我有一个很好的格式化的单元格的范围与不同的边界线权重(其中一些是中等厚度,其中一些是薄的,没有特定的模式)。 我想运行一个macros将边框的颜色改为灰色,但是每次我都这样做,它会自动将所有的边框权重改为xlThin。 我想保持原来的线条粗细,所以我不必经过并将相应的修改回到xlMedium,这将是单调乏味的。

有人可以帮我吗? 这可能吗?

我现在的代码很简单,它正确地改变颜色。 它也只是自动改变线宽,即使我没有指定重量或线型: Range("NamedRange").Borders.Color = RGB(150, 150, 150)

在我的Excel 2016中,这只会改变单元格边框的颜色,而不会改变尺寸:

 Sub changeColorOnly() Dim rng As Range, cel As Range Set rng = Range("C6:C9") For Each cel In rng cel.Borders.Color = RGB(150, 150, 150) Next cel End Sub 

它还会改变你的尺寸吗?

编辑:嗯,我怀疑你的代码还有其他事情,因为我可以重新着色命名的范围,而不会影响边界。 不过,因为我已经在另一个select,你也可以使用这些潜艇(和必要的调整)

 Dim brdrTop, brdrLeft, brdrRight, brdrBtm, brdrInside Sub changeColor() saveBorderSize Range("myNamedRange") Range("MyNamedRange").Borders.Color = RGB(150, 150, 150) resetBorderSize Range("myNamedRange") End Sub Private Sub saveBorderSize(cel As Range) brdrTop = cel.Borders(xlEdgeTop).Weight brdrLeft = cel.Borders(xlEdgeLeft).Weight brdrRight = cel.Borders(xlEdgeRight).Weight brdrBtm = cel.Borders(xlEdgeBottom).Weight brdrInside = cel.Borders(xlInsideHorizontal).Weight End Sub Private Sub resetBorderSize(cel As Range) cel.Borders(xlEdgeTop).Weight = brdrTop cel.Borders(xlEdgeLeft).Weight = brdrLeft cel.Borders(xlEdgeRight).Weight = brdrRight cel.Borders(xlEdgeBottom).Weight = brdrBtm cel.Borders(xlInsideHorizontal).Weight = brdrInside End Sub