我正在做的是运行数据,将其填充到特定位置,然后在电子表格的末尾创建一个新列以显示本周的数据。除了将值粘贴到结束单元格中之外,我将所有内容都运行得很顺利,结束单元格每周会移动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
注释掉的部分是我遇到麻烦的部分。提前谢谢!
答案 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