2015-09-18 16 views
0

У меня есть следующий код, который сканирует список необработанных данных и для каждой строки, и если дата и var (определенный вариант) верны, строка копируется и помещается в правильное место назначения. Эта строка для копирования строки закомментирована. Макрос работал, но вместо копирования всей строки, которую я сейчас пытался (в 2 строках выше прокомментированной строки .copy), чтобы выбрать только определенные ячейки в строке (ячейки в iRow и столбцы M, N, O, Q, R, U, V, АВ). Я получаю ошибку: неправильное количество аргументов или недопустимое присвоение свойств. Я знаю, что это связано с двумя новыми строками ввода кода, потому что ранее код работал нормально. Любая помощь приветствуется, спасибо!Для диапазона Loop не работает: неправильное количество аргументов или недопустимое присвоение свойств

Sub currentMonthDetail() 

Dim csCount As Range 
Dim b As Variant 
Dim shrow As Long 
Dim iRow As Long, iRowL As Long, var As Variant, iDate As Variant 
Dim bln As Boolean 
Dim s As String 
Dim eRow As Integer 
Dim i As Integer 

'Import monthly data from GL008 tab to detail----------------------------------------------------------------- 

Set csCount = Worksheets("Input").Range("csCount") 

Sheets("GL008").Activate 

iRowL = Cells(rows.count, 1).End(xlUp).Row 

For iRow = 2 To iRowL 
    Sheets("GL008").Activate 
    If Not IsEmpty(Cells(iRow, 35)) Then 
     bln = False 
     var = Application.Match(Cells(iRow, 35).Value, Worksheets("Input").Columns(3), 0) 
     iDate = Sheets("GL008").Cells(iRow, 34) 
     If Not CVErr(var) = CVErr(xlErrNA) And iDate = Worksheets("Input").Range("E3") Then 
     Sheets("GL008").Activate 
     Range("M" & iRow, "N" & iRow, "O" & iRow, "Q" & iRow, "R" & iRow, "U" & iRow, "V" & iRow, "AB" & iRow).copy 
     'Sheets("GL008").rows(iRow).copy 
     s = Sheets("GL008").Cells(iRow, 35) 
     Sheets(s).Activate 
     eRow = Sheets(s).Cells(rows.count, 1).End(xlUp).Offset(1, 0).Row 
     ActiveSheet.Paste Destination:=Sheets(s).rows(eRow) 
     End If 
    End If 


Next iRow 

ответ

0

Проводя много ячеек до Range. Когда вы пытаетесь это сделать, он ищет верхнюю левую стартовую ячейку, нижнюю правую конечную ячейку и делает выбор прямоугольника от одного к другому.

Потому что вы пытаетесь дать ему 8 отдельных параметров, он не может справиться с этим. Вам нужно указать 1 параметр, который содержит список ячеек; сделайте их все в одну строку, а затем передайте эту строку в качестве одного параметра для диапазона.

i.e поместите запятые в текст.

Range("M" & iRow & ",N" & iRow & ",O" & iRow & ",Q" & iRow & ",R" & iRow & ",U" & iRow & ",V" & iRow & ",AB" & iRow).copy 
+0

Отлично, спасибо за разъяснение и решение. Делает смысл и работает хорошо. – KM617

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

  • Нет связанных вопросов^_^