应用程序定义或对象定义的错误

时间:2015-10-02 15:38:15

标签: vba

我正在尝试使用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

我收到了错误:

  

应用程序定义或对象定义错误

有谁知道为什么会这样?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您可能从列中的第一个单元格开始,因此无法使用-1尝试偏移向上&会引起这个错误。

添加支票以确保c.Row > 1能够防止这种情况发生。