0

我正在做的是运行数据,将其填充到特定位置,然后在电子表格的末尾创建一个新列以显示这周的数据。除了将值粘贴到结束单元格之外,我的一切运行顺利,该单元格每周将移动 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

注释掉的部分是我遇到问题的部分。提前致谢!

4

2 回答 2

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
于 2013-06-28T12:19:04.910 回答
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
于 2013-07-01T18:00:16.773 回答