我正在尝试使用vba设置F列中单元格的边框和内部格式。其格式是否发生变化取决于单元格正上方和/或下方是否有任何信息。我一直在使用以下代码来执行此操作:
Dim ws as worksheet
Set ws = worksheets("Res")
Dim c As Range
For Each c In ws.UsedRange.Columns("F").Cells
If IsEmpty(c.Offset(1, 0)) = True And IsEmpty(c.Offset(-1, 0)) = False Then
With c.Offset(-1, 0).Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ThemeColor = 5
.TintAndShade = 0.399945066682943
.Weight = xlThin
End With
With c.Offset(-1, 0).Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent1
.TintAndShade = 0.799981688894314
.PatternTintAndShade = 0
End With
End If
Next c
在
If IsEmpty(c.Offset(1, 0)) = True And IsEmpty(c.Offset(-1, 0)) = False Then
我收到了错误:
应用程序定义或对象定义错误
有谁知道为什么会这样?
感谢您的帮助。
答案 0 :(得分:0)
您可能从列中的第一个单元格开始,因此无法使用-1
尝试偏移向上&会引起这个错误。
添加支票以确保c.Row > 1
能够防止这种情况发生。