標題:
[發問]
請教如何只刪除儲存格內的數值 而不刪除公式
[打印本頁]
作者:
vic
時間:
2015-7-10 12:50
標題:
請教如何只刪除儲存格內的數值 而不刪除公式
想請教一下
我在網路上參考的清除指令如下
Sub 清除()
Beep
If MsgBox("※確定要清除〔資料圖表區〕的記錄嗎? ", 4 + 32 + 256) = vbNo Then Exit Sub
Call 共用使用
Sht1.Rows("19:65536").ClearContents
If ActiveSheet.Name = Sht1.Name Then ActiveWindow.ScrollRow = 1
Beep
End Sub
複製代碼
這個會將我Row 19以下的數值含公式全部刪除
不過我在(K19,K319)及(N19,N319)內有寫入簡單的公式
可以修改成只刪除數值不刪除公式嗎?
請問如何修改
作者:
lpk187
時間:
2015-7-10 13:56
回復
1#
vic
不可能只刪值而不刪公式的!因為公式所參照的儲存格有值的話,你的公式畢竟會顯示值出來。
所以一般不讓其值顯示大多數會利 用IF函數來幫助判斷,來讓公式儲存格顯示空白,
例如:
原來的C1=A1+B1可以寫成
C1=IF(OR(A1="",B1=""),"",A1+B1)'當A1和B1皆是空白時C1=空白,否則C1=A1+B1
然後在VBA中只刪除A1和B1,這樣就可以達到類似你要的模式了。
作者:
jackyq
時間:
2015-7-10 15:02
既然是 清除〔資料圖表區〕的記錄
那把圖表的參照範圍改到其他空白區
如何呢?
作者:
GBKEE
時間:
2015-7-11 05:42
回復
1#
vic
Sub 清除()
Beep
If MsgBox("※確定要清除〔資料圖表區〕的記錄嗎? ", 4 + 32 + 256) = vbNo Then Exit Sub
Call 共用使用
With Sht1.Rows("19:65536")
On Error Resume Next '程式上有錯誤,繼續執行下一行的程式程式碼
'SpecialCells(特殊儲存格),xlCellTypeConstants。包含常數的儲存格
'沒有指定的SpecialCells,會有程式上的錯誤
.SpecialCells(xlCellTypeConstants) = ""
On Error GoTo 0 '不處理程式上的錯誤
End With
If ActiveSheet.Name = Sht1.Name Then ActiveWindow.ScrollRow = 1
Beep
End Sub
複製代碼
作者:
vic
時間:
2015-7-11 22:11
回復
4#
GBKEE
太感謝了 我原本也試過用(xlCellTypeConstants, 23)
不過也是如果儲存格有值的時候執行會成功,
清除後再執行就發生錯誤~感謝您
也感謝其他大大熱心的提供意見
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)