更改Excel工作表中的行边框颜色
在帮助下,我构建了一个宏来调整表的大小。调整表的大小以添加行时,新行的边框颜色错误 我说到这一点。如果我可以让rows循环工作,我将为列创建另一个循环,以刷新这两个列的格式。数据主体的底部行边框(总计行上方)不应更改,总计行也不应受到任何影响 它告诉我我不能使用:s.ListRows(x).Borders(xlEdgeTop)-但我需要一种方法来定位表。我该怎么办更改Excel工作表中的行边框颜色,excel,vba,range,Excel,Vba,Range,在帮助下,我构建了一个宏来调整表的大小。调整表的大小以添加行时,新行的边框颜色错误 我说到这一点。如果我可以让rows循环工作,我将为列创建另一个循环,以刷新这两个列的格式。数据主体的底部行边框(总计行上方)不应更改,总计行也不应受到任何影响 它告诉我我不能使用:s.ListRows(x).Borders(xlEdgeTop)-但我需要一种方法来定位表。我该怎么办 Set r = Worksheets("Proposed").Range("Proposed[Strategy/Type]") i
Set r = Worksheets("Proposed").Range("Proposed[Strategy/Type]")
i = Application.WorksheetFunction.CountIf(r, "Dividend")
i = i + 13
Set s = Worksheets("Dividend").ListObjects("Dividend")
s.Resize Range("$A$12:$J$" & i)
For x = 1 To s.ListRows.Count
With s.ListRows(x).Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ThemeColor = 1
.TintAndShade = -0.149906918546098
.Weight = xlThin
End With
Next x
与您的案例相关,请参考下面所示的解决方案(对于快速原型设计,我使用的是窄12…20
行(x)
范围-将其替换为实际上限,计算为s.ListRows.Count
:
For x = 12 To 20
With Rows(x)
With .Borders(xlEdgeTop)
.Weight = xlThin
.ColorIndex = xlAutomatic
.LineStyle = xlContinuous
End With
End With
Next x
更好的解决方案是对整个范围应用边框样式,而不在行中循环,如以下示例所示:
With Range("A12:J" & 20)
With .Borders(xlTop)
.Weight = xlThin
.ColorIndex = xlAutomatic
.LineStyle = xlContinuous
'.ThemeColor = 1
.TintAndShade = -0.149906918546098
End With
End With
在这两种情况下,只需将上限“20”替换为计算的s.ListRows.Count
希望这能有所帮助。您到底遇到了什么错误?对象不支持此属性或方法。我添加了s.ListRows.Count(代替20)和s.ListRows(x)(代替行(x))。它不喜欢-With.Borders(xlTop)行。错误与以前相同。不,您应该使用行(x)如图所示,只需将20替换为s.ListRows.Count。它可以工作,但会将格式添加到工作表中的所有行中。是否有任何方法将其缩小到仅listobject?顺便说一句,非常感谢您的帮助!我非常感谢。我帮了我很多忙。我在这个问题上花费了很多时间。是的,我刚刚向sec扩展了答案ond解决方案:使用范围对象,如图所示。