2017-07-28 112 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中的所有文本,但它們的公式將保留。 –

相關問題