无法在VBA中的样式中正确设置边框

我有一堆代码添加到Excel的8个自定义样式,并删除所有其他人。 大部分的代码工作,除了1位。 这涉及到仅在底部边缘具有彩色边框的样式,其他边缘没有边框。

With ActiveWorkbook.Styles.Add("Table top row") .Font.Name = "Tahoma" .Font.Size = 8 .Font.Bold = True .Font.Italic = False .Font.Color = vbBlack .Borders(xlEdgeBottom).Color = RGB(120, 159, 218) .Borders(xlEdgeBottom).Weight = xlThin .Borders(xlEdgeBottom).LineStyle = xlContinuous .HorizontalAlignment = xlLeft End With 

这段代码的结果是正确的字体,但没有边界。 然后我尝试另一种方式:

 With ActiveWorkbook.Styles.Add("Table top row") .Font.Name = "Tahoma" .Font.Size = 8 .Font.Bold = True .Font.Italic = False .Font.Color = vbBlack .Borders.Color = RGB(120, 159, 218) .Borders.Weight = xlThin .Borders(xlEdgeBottom).LineStyle = xlContinuous .Borders(xlEdgeTop).LineStyle = xlNone .Borders(xlEdgeLeft).LineStyle = xlNone .Borders(xlEdgeRight).LineStyle = xlNone .Borders(xlDiagonalUp).LineStyle = xlNone .Borders(xlDiagonalDown).LineStyle = xlNone .HorizontalAlignment = xlLeft End With 

这导致除了左边缘以外的边界。 我完全迷惑,为什么我不能得到这个工作。 我发现一些解决scheme包括转换范围而不是风格,但我需要的风格,以在不同的文件中快速使用。

尝试使用xlRight等,而不是xlEdgeRight等。这似乎工作,虽然我不完全明白为什么。

 With ActiveWorkbook.Styles.Add("Table top row") .Font.Name = "Tahoma" .Font.Size = 8 .Font.Bold = True .Font.Italic = False .Font.Color = vbBlack .Borders.Color = RGB(120, 159, 218) .Borders.Weight = xlThin .Borders(xlBottom).LineStyle = xlContinuous .Borders(xlTop).LineStyle = xlNone .Borders(xlLeft).LineStyle = xlNone .Borders(xlRight).LineStyle = xlNone .Borders(xlDiagonalUp).LineStyle = xlNone .Borders(xlDiagonalDown).LineStyle = xlNone .HorizontalAlignment = xlLeft End With