2015-11-19 10 views
1

Я получаю сообщение об ошибке в первой строке, пытающейся скопировать значение в следующем VBA, я думаю, что вторая часть диапазона неверна, но не может обнаружить проблему.Ошибка диапазона в макросе копирования

Dim site As String 
Dim People As Range 
Dim AmountOfSites As Long 
Dim AmountOfPeople As Long 
Dim DestStartRow As Long 
Dim DestEndRow As Long 
Dim sh1 As Worksheet 
Dim sh2 As Worksheet 
Dim sh3 As Worksheet 
Set sh1 = ThisWorkbook.Sheets("SiteName") 
Set sh2 = ThisWorkbook.Sheets("Input") 
Set sh3 = ThisWorkbook.Sheets("Output") 
AmountOfSites = sh1.Range("A1048576").End(xlUp).Row 
AmountOfPeople = sh2.Range("A1048576").End(xlUp).Row 
DestStartRow = 2 
DestEndRow = DestStartRow + AmountOfPeople 

For i = 1 To AmountOfSites 
    sh3.Range(Cells(DestStartRow, "A"), Cells((DestEndRow), "L")).Value = _ 
     sh2.Range(Cells(2, "A"), Cells(AmountOfPeople + 2, "L")).Value 
    sh3.Range(Cells(DestStarRow, "M"), Cells(DestEndRow, "M")).Value = sh1.Cells(i, "A") 
    DestStartRow = DestEndRow + 1 
    DestEndRow = DestStarRow + AmountOfPeople 
Next 
+5

Все «Диапазоны» и «Ячейки» должны быть квалифицированы. Итак, 'sh3.Range (sh3.Cells (...' –

+1

Yeps. Спасибо! Это было, если вы добавите ответ, я могу его продвинуть. – edelwater

+1

Рад, что я мог помочь. Насколько мне нравится видеть мои очки, –

ответ

2

От @Scott Craner:

Все Ranges и Cells должны быть квалифицированы. Так sh3.Range(sh3.Cells(...

и в соответствии с OP:

Yeps. Благодаря! Это было

+0

mannnnn Эта ошибка 1004 диапазона должна появляться десяток раз в день. Знаете ли вы какой-либо канонический ответ, который мы получаем? может использовать для дура-молота? Если нет, я просто возьму любой подобный Q с принятым ответом для обмана. –

+1

Я игнорирую обман большинства дней тоже, в основном потому, что он бесполезен ... Дело в том, что большинство эти 1004 ошибки, это * буквально * та же проблема и тот же ответ примерно в 90% случаев - поэтому часто в этом случае я могу идентифицировать его как обман, даже не видя код ошибки и т. д. Есть и другие вещи, которые поднимите 1004, и еще несколько симптомов для Метод Range не удался, но почти все время это та самая проблема неквалифицированных диапазонов./Декламация. –

+0

да, это все, что мешало мне написать его до сих пор :) В основном есть три вещи, которые вызывают отказ в методе 1004: неквалифицированные диапазоны, которые не могут разрешить допустимый диапазон, опечатки, которые не могут разрешить допустимый диапазон , и защита рабочего листа. Любые другие? –

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