2017-07-28 145 views
0

有没有办法删除单元格范围内的所有数据,但保留公式。我的示例文件是一个简单的计算,它将总结来自C2:C5的数字,然后将总和写入表格(“摘要”)。范围(“B2”)。单击该按钮后,它将删除范围为A2:C5中的数据,但单元格A2:C5中的公式也将被删除。删除单元格区域中的数据但保留公式

我的理想结果是范围内的公式(A2:C5)将保留。

截图:Screenshot

mycode的:

Private Sub CommandButton1_Click() 


Dim sum As Worksheet, ws As Worksheet 

Dim c As Range 

Set sum = Sheets("Summary"): Set ws = Sheets("Sheet1") 

sum.Range("B" & sum.Range("B1000000").End(xlUp).Offset(1, 0).Row) = WorksheetFunction.sum(ws.Range("C2:C" & ws.Range("C100000").End(xlUp).Row)) 
'ws.Range("A2:C" & ws.Range("A1").SpecialCells(xlCellTypeLastCell).Row).ClearContents 

For Each c In Sheet1.Range("A2:C9") 
    If Not c.HasFormula Then c.ClearContents 
Next c 

末次

+0

在你的代码,只是不删除列**'C' **中的任何内容。然后在**'C' **列中的单元格中的公式中,添加**'IF' **条件以检查'A'和'B'列中相关行中是否有值。如果没有,只需将'C'列中的单元格中的值设置为无 – Zac

+0

明白了我只是在我的代码中更改了某些内容。每当我点击按钮,它只会删除单元格A:B但不是C. –

+0

嗨扎克,这对我的这样的例子有很大帮助,但是如果列A和B具有像= sumifs这样的公式。这是我真正想要解决的问题.. –

回答

0

你可以尝试像下面的代码:

Dim C As Range 
For Each C In Sheet1.Range("A2:C5") 
    If Not C.HasFormula Then C.ClearContents 
Next C 
+0

@KurtMatthew而不是你最后一行的清晰内容 –

+0

嗨,我发布了它缺少的信息,我现在用我的第一个问题。真实情况是,范围A:B也有一个公式。我只想删除范围A:C中的所有文本,但它们的公式将保留。 –

相关问题