我有一张纸,其中B列中的单元格与下面的行合并。在其余的列中,行不合并。
我想添加一个VBA代码,该代码沿着合并的单元格的底部在整个行的底部绘制一条线。好像我想为所有列每隔一行绘制一个底边框(B除外,每个合并的单元格都有底边框)。我尝试使用以下代码,但未在合并的单元格下绘制边框
Sub FormatTest()
With Sheets("Test")
With .Range("$B:$Z")
.FormatConditions.Add xlExpression, Formula1:="=mod(row(),2)=0"
With .FormatConditions(1).Borders(xlBottom)
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlThin
End With
.FormatConditions(1).StopIfTrue = False
End With
End With
End Sub
这是我想要实现的目标的一个例子
我想通过条件格式实现此目的,因为行数会不时变化,并且我不想在空单元格上有边框。
照片只是一个例子,因为有很多行,并且在不同的工作表上,我会有不同的列数,所以我只想将其应用于整行...有人可以帮忙吗?
答案 0 :(得分:1)
您可以尝试按照以下方式使用某些东西:
(可能只是需要修正row = 1
才能获得正确的开始位置)
Dim row As Long
Dim lastRow As Long
Dim lCol As Long
Dim letter As String
With ThisWorkbook.Worksheets("your sheet name")
' clear previous borders
.Range("A5:ZZ30000").Borders.Linestyle = xlNone
' add new borders
lastRow = .Cells(.Rows.Count, "B").End(xlUp).Row
lCol = .Cells(1, .Columns.Count).End(xlToLeft).Column ' checks row 1 for last col
letter = Split(.Cells(1, lCol).Address, "$")(1)
For row = 1 To lastRow+1 Step 2
With .Range("B" & row & letter & row).Borders(xlBottom)
.LineStyle = xlContinuous
.Weight = xlThin
End With
Next
End With