2015-08-10 7 views
2

Я пытаюсь скопировать несколько ячеек на новый рабочий лист на основе определенных условий.Копирование и вставка нескольких ячеек Ошибка 450

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

Sub sort() 

Set ws = ThisWorkbook.Sheets(Array("3rd and 4th Floor Columns", "3rd Floor Beams", "Test1", "Test2")) 


For k = 12 To 360 
With ws(1) 
i = 1 
j = 1 
Select Case ws(1).Cells(k, 9).Value 

Case 26 

ws(1).Range(.Cells(k, 9), .Cells(k, 12)).Copy 
ws(3).Range(.Cells(i, 1), .Cells(i, 4)).PasteSpecial xlPasteValues 

Application.CutCopyMode = False 
i = i + 1 

Case 57 

ws(1).Range(.Cells(k, 9), .Cells(k, 12)).Copy 
ws(4).Range(.Cells(j, 1), .Cells(j, 4)).PasteSpecial xlPasteValues 'Application defined.. error 

Application.CutCopyMode = False 
j = j + 1 

Case Else 

End Select 
End With 
Next k 
End Sub 

ответ

1

Вам необходимо ввести только верхняя левая ячейка и нижняя правая ячейка до определяет диапазон, поэтому ваш код будет выглядеть так:

For k = 12 To 360 
With ws(1) 
    i = 1 
    j = 1 
    Select Case .Cells(k, 9).Value 
     Case 26 
      ws(1).Range(.Cells(k, 9), .Cells(k, 12)).Copy 
      ws(3).Range(ws(3).Cells(i, 1)).PasteSpecial Paste:=xlPasteValues 
      Application.CutCopyMode = False 
      i = i + 1 
     Case 57 
      ws(1).Range(.Cells(k, 9), .Cells(k, 12)).Copy 
      ws(4).Range(ws(4).Cells(j, 1)).PasteSpecial Paste:=xlPasteValues 
      Application.CutCopyMode = False 
      j = j + 1 
     Case Else 
    End Select 
End With 
+0

Эй, спасибо за информацию. Я обновил код, но теперь я получаю ошибку «Определено приложение или объект» –

+0

Хорошо, на какой строке? – R3uK

+0

Здравствуйте, я обновил свой вопрос в соответствии с новой ошибкой. –

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