我正在编写代码来执行“K”列的公式,更改其格式,然后将其复制并粘贴到“A”列中。
我也在尝试将列“I”复制并粘贴到“B”列。 “i”确定B列中单元格的数量。
到目前为止,这是我的代码:
Sub Test()
Dim i As Long
i = Sheet1.Cells(Rows.Count, 2).End(xlUp).Row
With Range("K3:K" & i)
.Formula = "=DATE(A3,G3,H3)"
.NumberFormat = "ddmmmyyyy"
.Copy
Range("A3:A" & i).PasteSpecial xlPasteFormats
End With
With Range("I3:I" & i)
.Copy
Range("B3:B" & i).PasteSpecial xlPasteFormats
End With
End Sub
我出错的任何想法?我是VBA的新手,所以这很可能是我忽略的一个小错误。
编辑:调整后的公式正在将列I正确复制到列B,但是列K到列A是错误的。
让我们说列K有日期:
29Apr1921
08May1922
21Oct1923
A栏现在有:
04Apr1905
05Apr1905
06Apr1905
答案 0 :(得分:1)
问题是它缺少粘贴值并且只粘贴了格式。在执行Date公式后,它还需要自己的With语句。
Sub Test()
Dim i As Long
i = Sheet1.Cells(Rows.Count, 2).End(xlUp).Row
With Range("K3:K" & i)
.Formula = "=DATE(A3,G3,H3)"
.NumberFormat = "ddmmmyyyy"
End With
With Range("K3:K" & i)
.Copy
Range("A3:A" & i).PasteSpecial xlPasteValues
Range("A3:A" & i).PasteSpecial xlPasteFormats
End With
With Range("I3:I" & i)
.Copy
Range("B3:B" & i).PasteSpecial
End With
End Sub