2015-10-02 15 views
0

Я пытаюсь установить рамки и внутреннее форматирование ячеек в столбце F с помощью vba. Независимо от того, изменяется ли их форматирование, зависит ли какая-либо информация в ячейке непосредственно выше и/или ниже нее. Я использую следующий код, чтобы сделать это:Ошибка определения приложения или объекта

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 Затем ...», но я получил такая же ошибка. – justinua

Смежные вопросы