Обновление вставленного диапазона

У меня есть около 30 листов, каждый из которых представляет день недели. Это сэкономило бы мне огромное количество времени.

Я посмотрел в этом номере для проблемы, подобной моей, но мне не повезло.

Я очень хочу получить помощь.

Так что проблема; я пытался изменить код ниже, но без успеха, как я получаю сообщения об ошибках.

Я пытаюсь скопировать те же данные, с небольшим искажением.

Однако мне нужен столбец даты, «A», который является» той же датой » для каждой ячейки из A2-A85, когда его вставляют, он каждый раз увеличивается на 1 день.

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

На данный момент код позволяет мне копировать и вставлять 7 раз одни и те же данные.

Ваша помощь и понимание будут оценены

' this is just one sheet    

Sub CopyRange()

Dim rws As Long

Sheets("20160817").Activate
With Worksheets("20160817").Range("A2:O85")
rws = .Rows.Count + 2
  .Resize(rws).Copy Destination:=.Offset(rws).Resize(rws * 7)
End With
End Sub

Большое спасибо,

Обратите внимание, для того, чтобы получить диапазоны для этих тридцати листов, мне пришлось использовать функцию конкантации и подсчета, чтобы вычислить количество строк для каждого листа. Столбцы исправлены A-O. для разработки моего кода диапазона.

С уважением
Али

Col
A     B       C             D    .......O
16/9  Data1B   Data1C   Data1D
16/9  Data2B   Data2C   Data2D
.
.
16/9  Data2B   Data2C   Data2D

code run

Col
A     B       C             D    .......O
17/9  Data1B   Data1C   Data1D
17/9  Data2B   Data2C   Data2D
.
.
17/9  Data2B   Data2C   Data2D 

Продолжает X раз дату вверх на один от предыдущей даты

1 ответ

  1. попробовать это

    Sub CopyRange()
        Dim rws As Long
    
        With Worksheets("20160817").Range("A2:O85")
            rws = .Rows.Count + 2
            With .Resize(rws)
                .Copy Destination:=.Offset(rws).Resize(rws * 7)
                .Offset(rws).Resize(rws * 7, 1).SpecialCells(xlCellTypeConstants, xlNumbers) = "=R[-86]c+1"
            End With
        End With
    End Sub
    

    Кстати, вам не нужны никакие Activate