Скопировать ячейки A2:B5 в свободное место области печати столько раз сколько указано в другой ячейке. В Примере вроде постарался все объяснить. Печатать нужно много и в ручную получается много ошибок. Постараюсь объяснить что должно быть на выходе. Есть клеевая бумага на подложке, бумага надрезана на 40 частей, 4 столбца и 10 строк. Размер ячеек строго установлен и выверялся очень долго опытным путем и нужно чтобы скопированные ячейки вставлялись по четыре в стоку и переходили на следующую. Как то так, пожалуйста помогите, а то уволят
Скопировать ячейки A2:B5 в свободное место области печати столько раз сколько указано в другой ячейке. В Примере вроде постарался все объяснить. Печатать нужно много и в ручную получается много ошибок. Постараюсь объяснить что должно быть на выходе. Есть клеевая бумага на подложке, бумага надрезана на 40 частей, 4 столбца и 10 строк. Размер ячеек строго установлен и выверялся очень долго опытным путем и нужно чтобы скопированные ячейки вставлялись по четыре в стоку и переходили на следующую. Как то так, пожалуйста помогите, а то уволят latrodectus
Sub Test3() Dim r As Range, i1&, i2&, rw&, cl&: rw = 20: cl = 1 Dim cell As Range Set cell = Cells.Find("*", , , , xlByRows, xlPrevious) If cell.Row > rw Then If cell.Column >= 8 Then rw = cell.Row + 1 cl = 1 Else rw = cell.Row - 3 cl = cell.Column + 1 End If End If Set r = Range("E1").CurrentRegion Application.ScreenUpdating = False ' Cells(rw, "A").CurrentRegion.Clear For i1 = 2 To r.Rows.Count Range("C4") = r(i1, 1) For i2 = 1 To r(i1, 2) Range("B2:C5").Copy Cells(rw, cl) If cl = 7 Then cl = 1: rw = rw + 4 Else: cl = cl + 2: End If Next Next Application.ScreenUpdating = True End Sub
[/vba]
[vba]
Код
Sub Test3() Dim r As Range, i1&, i2&, rw&, cl&: rw = 20: cl = 1 Dim cell As Range Set cell = Cells.Find("*", , , , xlByRows, xlPrevious) If cell.Row > rw Then If cell.Column >= 8 Then rw = cell.Row + 1 cl = 1 Else rw = cell.Row - 3 cl = cell.Column + 1 End If End If Set r = Range("E1").CurrentRegion Application.ScreenUpdating = False ' Cells(rw, "A").CurrentRegion.Clear For i1 = 2 To r.Rows.Count Range("C4") = r(i1, 1) For i2 = 1 To r(i1, 2) Range("B2:C5").Copy Cells(rw, cl) If cl = 7 Then cl = 1: rw = rw + 4 Else: cl = cl + 2: End If Next Next Application.ScreenUpdating = True End Sub