gpt4 book ai didi

vba - 更改范围的边框颜色而不更改线​​型/粗细

转载 作者:行者123 更新时间:2023-12-03 00:50:32 36 4
gpt4 key购买 nike

我有一个格式良好的单元格范围,具有不同的边框线粗细(其中一些是中等厚度,其中一些是薄的,没有特定的图案)。我想运行一个将边框颜色更改为灰色的宏,但每次执行此操作时,它都会自动将所有边框粗细更改为 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

它还会为您改变尺寸吗?

编辑:嗯,我怀疑您的代码中还有其他问题,因为我可以重新着色命名范围而不影响边框。然而,仅仅因为我已经在研究另一种替代方案,您也可以使用这些潜艇(并根据需要进行调整)

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

关于vba - 更改范围的边框颜色而不更改线​​型/粗细,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41445924/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com