2015-10-02 72 views
0

我想使用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 

我已經越來越錯誤:

Application Defined or Object-Defined Error

有誰知道這是爲什麼?

感謝您的幫助。

回答

0

你很可能開始在列的第一個單元格因此試圖彌補-1是不可能&將提高該錯誤。

添加支票以確保c.Row > 1能夠防範此問題。

+0

謝謝,我認爲這可能與它有關。你能詳細說明我應該在哪裏添加c.row> 1嗎?我試過了:「如果c.Row> 1和IsEmpty(c.Offset(1,0))= True和IsEmpty(c.Offset(-1,0))= False Then ...」,但我得到了同樣的錯誤。 – justinua

相關問題