2014-02-19 5 views
0

Я новичок в VBA и пытаюсь запустить очень простую подпрограмму, но получаю сообщение об ошибке. Я хочу, чтобы очистить диапазон ячеек от K7 до неопределенного количества строк и столбца V. Вот код:clearcontents диапазон ячеек

Sub UpdateMatrix() 

    Worksheets("Prioritization Matrix").Range("K7", Cells(Row.Count, 22)).ClearContents 

End Sub 

Здесь ошибка:

vba runtime error 424 object required 

Все примеры я видел, что я считаю, что этот код должен работать, но это не так. Предложения?

Спасибо!

+0

Где вы получаете 'Row' от? Это вопрос –

+0

Возможно, вам понадобится 'Rows.Count'. Кроме того, вторым параметром «Ячейки» может быть буква столбца в кавычках, например. ' "V"'. Это делает его более читаемым. – Kapol

ответ

0
  • Во-первых, если вы используете свой код с другого листа, чем матрица приоритетов, вы создаете 3d-диапазон, который терпит неудачу, вам необходимо сделать ссылку на ячейки абсолютной, а не относительной.
  • Во-вторых, Count относится к Rows, а не .

    Worksheets("Prioritization Matrix").Range("K7", Worksheets("Prioritization Matrix").Cells(Worksheets("Prioritization Matrix").Rows.Count, 22)).ClearContents 
    
  • Наконец, вы очистки очень широкий диапазон, вы можете ограничить очистку с помощью Used Range:

    Sub UpdateMatrix() 
    Dim sht As Worksheet 
    
    Set sht = Worksheets("Prioritization Matrix") 
    
    Intersect(sht.Range("K7", sht.Cells(Rows.Count, 22)), sht.UsedRange).ClearContents 
    
    End Sub 
    
Смежные вопросы