2017-01-25 3 views
1

сегмент моего кода следующим образом,«Неверное число аргументов или недействительных свойства присваивания» Ошибка при попытке удалить значения в ячейках

If Not Column2 = Empty Then 
    Set Rg2 = BalkanSheet.Cells.Find(What:=Column2) 
    If Not Rg2 Is Nothing Then 
     Column2Width = Rg2.MergeArea.Columns.Count - 1 
     StartCol2Column = Rg2.Column 
     EndCol2Column = StartCol2Column + Column2Width 
    Else 
     MsgBox Column2 & " not found in " & BalkanSheet.Name 
    End If 
    Else 
    Worksheets("Graph").Range(Cells(i, 7), Cells(i, 8), Cells(i, 9), Cells(i, 10)).Value = "" 
End If 

Когда я пытаюсь запустить его я получаю сообщение об ошибке с линией Worksheets("Graph").Range(Cells(i, 7), Cells(i, 8), Cells(i, 9), Cells(i, 10)).Value = "", говоря «Неверное количество аргументов или недопустимое присвоение свойств».

Значение i - это переменная, которая установлена ​​ранее в коде. То, что я хочу, чтобы код выполнял, - это если оператор If является ложным (Else), тогда он удалит значения в указанных ячейках.

Любые идеи?

+5

«Рабочие листы (« График »). Диапазон (ячейки (i, 7), ячейки (i, 10)). Диапазон ClearContents' допускает только два аргумента - начальную ячейку и конечную ячейку. –

+0

Ну, это было просто, спасибо! – Dullspark

ответ

2

попробовать что-то вроде этого:

with Worksheets("Graph") 
    .Range(.Cells(i, 7), .Cells(i, 10)).ClearContents 
end with 

Идея заключается в том, что . способ передать лист и что нужно, когда вы обратитесь к клеткам.