vba 单元格交叉线

来源:百度知道 编辑:UC知道 时间:2024/05/19 12:18:29
如何实现Excel 单元格内填充交叉线,而不用类似于录制宏的代码形式,因为录制宏用到的语句,如果用到一个selection和withy语句,这样在执行的过程中,会老跳来来跳去,程序会很慢。希望能象单元格的属性一样后缀就能完成。而不用录制的宏这样:
With Selection.Borders(xlDiagonalDown)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlDiagonalUp)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
Selection.Borders(xlEdgeLeft).LineStyle = xlNone
Selection.Borders(xlEdgeTop).LineStyle = xlNone
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
Selection.Borders(xlEdgeRight).LineStyle = xlNone
因为在我的程序开头部分 用到了Application.ScreenUpdating = False,所以希望在程序体内不用selection,和with 语句,用了这些语句会刷新单元格,会严重影响程序执行速度,特别在大量这样单元格运算时,尤为明显!只要能解决我的问题,马上给分!
就这样就可以,别的,多余的
Sheet11.Cells(11, 11).Borders(xlDiagonalDown).LineStyle = xlContinuous
Sheet11.Cells(11, 11).Borders(xlDiagonalUp).Line

“跳来跳去”不是selection和with的原因,而是这段内容之前的select语句的问题。

如果selection是明确的区域,则不需要select,直接修改range的borders即可。

类似下面这样

With Range("a1:d10")
.Borders(xlDiagonalDown).LineStyle = xlContinuous
.Borders(xlDiagonalUp).LineStyle = xlContinuous
.Borders(xlEdgeLeft).LineStyle = xlNone
.Borders(xlEdgeTop).LineStyle = xlNone
.Borders(xlEdgeBottom).LineStyle = xlNone
.Borders(xlEdgeRight).LineStyle = xlNone
End With