将数据范围粘贴到新创建的变量列中的特定单元格中

时间:2013-06-28 11:55:50

标签: excel vba excel-vba

我正在做的是运行数据,将其填充到特定位置,然后在电子表格的末尾创建一个新列以显示本周的数据。除了将值粘贴到结束单元格中之外,我将所有内容都运行得很顺利,结束单元格每周会移动1列。我确信它在声明方面只是一些简单的东西,但我尝试过贴特别的东西,还有一些其他东西没有成功。

Sub InsertDate()

    Dim y As String
    y = "Wkly Change"
    If y = "" Then Exit Sub
    Dim x As Long
    For x = Cells(1, Columns.Count).End(xlUp).Column To 1 Step -1
        If Cells(2, x).Value = y Then
            Columns(x).EntireColumn.Insert
            Cells(1, x).Value = Date
            Cells(2, x).Value = "Delq"
            Cells(29, x).Value = Date
            Cells(30, x).Value = "WIP"
            'Range("B3:B27").Select
            'Selection.Copy
            'Range(3, x).Paste
            'Range("B31:B55").Select
            'Selection.Copy
            'Range(31, x).Paste
        End If
    Next x


End Sub

注释掉的部分是我遇到麻烦的部分。提前谢谢!

2 个答案:

答案 0 :(得分:0)

有几个选择......

Range("B3:B27").Copy Destination:=Range("C3:C27") 'Notice you mixed up cells and range notation

或尝试

Columns("B:B").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove

答案 1 :(得分:0)

这是我最终为解决问题而做的事情。不太确定为什么其他解决方案不起作用,但这完全符合我的需要。

Sub InsertDate()

Dim y As String
y = "Wkly Change"
If y = "" Then Exit Sub
Dim x As Long
For x = Cells(1, Columns.Count).End(xlUp).Column To 1 Step -1
If Cells(2, x).Value = y Then
Columns(x).EntireColumn.Insert
Columns("B:B").EntireColumn.Copy Destination:=Columns(x)
Cells(1, x).Value = Date
Cells(29, x).Value = Date
Columns(x).EntireColumn.AutoFit
End If
Next x


End Sub