更新粘贴范围

时间:2016-11-01 18:12:24

标签: excel vba

我每张约有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

非常感谢,

请注意,为了获得这三十张纸的范围,我不得不使用concantation函数和count来计算每张纸的行数。列是固定的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 个答案:

答案 0 :(得分:0)

试试这个

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