ClearContents用于常量但不包含公式

时间:2015-12-04 16:21:17

标签: excel vba excel-vba

我在sheet1上有一个范围(N1:N12),我有一个代码,可以在二次资料2上复制并粘贴该范围的值。一切都在工作,无论如何我不认为我想要另一个按钮只清除范围N1:N12中的值,一旦我将它们复制到sheet2中。当我想删除值时,我不知道如何在该范围内保留公式。你有好主意吗 ?我已经尝试过删除所有内容的普通宏,但它不是我想要的。

Sub Cancella() 
    Sheets("Foglio1").select 
    Range("N1:N12").clearcontents
End Sub

我用于复制的代码

Dim lastRow As Long
    Sheets("Training Analysis").Range("P1:R13").Copy

    lastRow = Sheets("Foglio1").Range("a65536").End(xlUp).Row

    Sheets("Foglio1").Range("A" & lastRow + 1).PasteSpecial Paste:=xlPasteValues, Transpose:=True

2 个答案:

答案 0 :(得分:0)

替换:

Range("N1:N12").clearcontents

使用:

For i = 1 To 12
   If Not Cells(i, "N").HasFormula Then Cells(i, "N").ClearContents
Next i

答案 1 :(得分:0)

Range.SpecialCells method有一部分针对xlCellTypeConstants。这可以进一步细分为xlNumbers,xlTextValues,xlErrors,xlLogical或它们的组合。

With WorkSheets("Foglio1")
    .Range("N1:N12").SpecialCells(xlCellTypeConstants, xlNumbers).ClearContents
End With

相反,包含公式的单元格可以使用xlCellTypeFormulas子集进行类似的目标。