Excel VBA – 复制并粘贴列,然后清除常量

我用下面的代码复制并粘贴一个范围到第一个空列:

Private Sub CommandButton2_Click() Dim lastCol As Long lastCol = Cells(4, Columns.Count).End(xlToLeft).Column Sheets("My Sheet").Range("D4:D119").Copy With Cells(4, lastCol + 1) .PasteSpecial Paste:=xlPasteAllUsingSourceTheme .EntireColumn.AutoFit .SpecialCells(xlCellTypeConstants).ClearContents End With End Sub 

所需的结果是从复制范围中删除常量,但上面的代码会删除工作表中的所有常量。 任何帮助是极大的赞赏。

谢谢。

如果只有一个单元是源,则使用整个单元。 只需将该行更改为:

 .EntireColumn.SpecialCells(xlCellTypeConstants).ClearContents 

或者(如果您还想排除该列中的行1到3):

 Range(Cells(4, lastCol + 1),Cells(Rows.Count, lastCol + 1)).SpecialCells(xlCellTypeConstants).ClearContents